想咨询一下 egg有单进程启动吗
发布于 1 个月前 作者 xilingshidai 1280 次浏览 来自 问答

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

9 回复

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

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

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

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

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

@jxycbjhc 0.5核吧 不会再多了,所以workers改成了1,1个工作进程 抢占会少一些

@xiaoxiaojx 目前就是设定成了一个工作线程,不需要随核扩展,扩展的话直接动态扩容

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

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

@hyj1991 好嘞,谢谢大佬。我持续关注一下

回到顶部