-
Notifications
You must be signed in to change notification settings - Fork 247
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
用egg 在容器中启动后,在几乎没人使用的情况下,内存在一天内逐步上升到1.6g。建议能有配置项能够优化内存分配 #123
Comments
@kaihekaihe 你怎么启动应用的? 不会是启动的开发模式(npm run dev)吧? 另外确认一下,你的 Egg 容器启动了多少 worker , Egg 默认是系统的核数 |
@kaihekaihe 部署的话,除了先进行项目构建外,部署就和普通的 node 应用一样部署就可以. 针对这个问题,先确认两点: |
ab -c 50 -n 1000 http://127.0.0.1:7001
|
用ps aux,有: node /opt/entry-frame/node_modules/.bin/egg-scripts start |
我用了type orm有没有影响? |
一般是这样,每多一天,内存会增加100m左右,这个egg vue启动后占用内存在1.2g左右,随后,会每天增加100m,直到接近1.7g |
不知道你那边是不是一直启动这个应用,每天的内存增量是多少 |
@kaihekaihe 可以直接部署这个模板应用观察一下内情情况。 另外 设置一下 EGG_WORKERS 环境变量,限制一下 worker数,比如设置为 4 个 |
因为不知道代码怎么使用的,建议可以直接部署这个模板应用观察一下内情情况。 |
我们这边线上使用的,内存不会一直增加的,即使增加后,也会回收掉的 |
@kaihekaihe 简单点,可以先本地对比试试 (npm run build , npm start)
|
如果还不行,可以加 QQ:715493250 直接聊,请备注一下 |
根据我上面的ps aux。有多少个worker,为什么要限制worker数呢 |
这个模板 占用的内存,一直维持在多少 |
@kaihekaihe 具体多少,要看你启动的 worker 数量。 上面截图显示,1个 worker 也就 30M - 40M |
memory: 2019-7-29 14:30:57: rss:110.08MB, heapTotal:55.27MB, heapUsed:48.64MB [2019-07-29 14:31:21.215] [cfork:master:81] worker:1221 disconnect (exitedAfterDisconnect: false, state: disconnected, isDead: false, worker.disableRefork: false) [2019-07-29 14:31:21.812] [cfork:master:81] worker:1207 disconnect (exitedAfterDisconnect: false, state: disconnected, isDead: false, worker.disableRefork: false) 这是日志打印。每次打印完memory之后,其中有一个worker 自动关了。看日志文件没有找到报错,不知道是不是打印memory的代码有问题。 我在代码里extend/application.js加了这段heapdump打印代码:https://blog.csdn.net/zdhsoft/article/details/56671395 |
@kaihekaihe 排查问题时,可以设置一下 process.env.EGG_WORKERS 环境变量,比如启动 1 个worker https://github.com/eggjs/egg-scripts workers - numbers of app workers, default to process.env.EGG_WORKERS, if unset, egg will use os.cpus().length as default. |
详情见这个issue:
eggjs/egg#3777
The text was updated successfully, but these errors were encountered: