CNode

想咨询一下 egg有单进程启动吗

问答
Xxilingshidai发布于4 年前最后回复4 年前9 回复3748 浏览0 收藏

我司项目是部署在阿里云k8s上,之前express,现在开始用egg写新项目,发现express 启动后内存占用200MB egg500Mb 后来分析发现 egg是多进程启动,这样就有个疑问了,单个pod 分配到的还不到一核,多进程是自己抢自己的资源,内存也是 多出来的开销,想问问 有单进程启动或者其它比较好的方式吗

查看回复

回复 (9)

X
xilingshidai#1·4 年前

自己回答自己 目前 workers 设定成了1 内存占用降下来了 由500 降到了200 其余还有待观察

W
waitingsong#2·4 年前

如果项目使用了 ts,可以考虑用 midwayjs (koa底层)

J
jxycbjhc#3·4 年前
引用 xilingshidai自己回答自己 目前 workers 设定成了1 内存占用降下来了 由500 降到了200 其余还有待观察

@xilingshidai 你几个CPU?别分配给node应用就一个CPU,搞啥多进程,时间都用来抢占了。如果用egg来做grpc server ,多进程下直接凉凉。

X
xiaoxiaojx#4·4 年前

k8s 中通过 require("os").cpus().length 获取到的核数是物理机的核数,实际采用的 CFS 调度策略分配到的核数可能会远小于这个数量,后面借鉴 Go 的方案解决了这个问题,有需要可以瞅瞅这个问题记录 Pod 中获取到错误的 CPUS

X
xilingshidai#5·4 年前
引用 waitingsong如果项目使用了 ts,可以考虑用 midwayjs (koa底层)

@waitingsong 有看过 但目前公司还没上TS,暂时试不了

H
hyj1991#8·4 年前

https://github.com/eggjs/egg/issues/4960

这个完成后内存占用会进一步降低

X
xilingshidai#9·4 年前
参与回复
登录后即可参与回复。登录