使用会话文件存储随时间增加 CPU 峰值
Posted
技术标签:
【中文标题】使用会话文件存储随时间增加 CPU 峰值【英文标题】:Increasing CPU spikes over time with session-file-store 【发布时间】:2020-11-24 20:36:50 【问题描述】:在 2 月 19 日左右,我的服务器开始出现每小时增加的 CPU 峰值:
我将这些追溯到为我的网站服务的节点进程。 Git 显示 1 月 12 日和 2 月 24 日之间没有任何变化。2 月 24 日,我进行了以下升级:
- "mongoose": "^4.11.6",
+ "mongoose": "^5.9.2",
- "passport-local-mongoose": "^4.1.0",
+ "passport-local-mongoose": "^6.0.1",
- "jwt-simple": "^0.5.1",
+ "jwt-simple": "^0.5.6",
- "orm": "^5.0.2",
+ "orm": "^5.0.5",
到 7 月,我的 CPU 一直处于 100% 的状态
一些分析显示 session-file-store 要么负责,要么被负责的代码调用:
这是调用树,虽然我不太明白,但它可能提供了丰富的信息
我设置 session-file-store 的代码是
const next = require("next")
const express = require("express")
const passport = require("passport")
const session = require("express-session")
const FileStore = require("session-file-store")(session)
const app = next(
dir: ".",
dev: config.dev
)
app
.prepare()
.then(() =>
server = express()
server.use(cookieParser())
server.use(
session(
secret: process.env.SESSION_SECRET,
store: new FileStore(
path: "/tmp/sessions",
secret: process.env.SESSION_SECRET
),
resave: false,
rolling: true,
saveUninitialized: true,
httpOnly: true,
cookie:
maxAge: 60000 * 60 * 24 * 7 * 4 // 4 weeks
)
)
server.use(passport.initialize())
server.use(passport.session())
passportConfig(passport)
我的配置中的某些内容是否解释了为什么 session-file-store 会有一个每小时任务且容量不断增加的任务?这是一个护照本地猫鼬错误吗?
【问题讨论】:
【参考方案1】:问题是我使用了会话选项saveUninitialized。这导致了无用会话文件的大量堆积,这些文件以某种方式每小时处理一次。
我通过将saveUninitialized
设置为false
解决了这个问题。
【讨论】:
以上是关于使用会话文件存储随时间增加 CPU 峰值的主要内容,如果未能解决你的问题,请参考以下文章
Infortrend GS/Gse统一存储1.38 OS正式发布提供下载更新