是否有可能减少 NodeJS 内存使用量(例如 Ghost 博客平台)

是否有可能减少 NodeJS 内存使用量(例如 Ghost 博客平台)
CPU [                         0.0%]     Tasks: 15, 2 thr; 1 running
Mem [||||                 14/256MB]     Load average: 0.00 0.00 0.00 
Swp [|                     1/256MB]     Uptime: 15 days, 06:02:31

以上是我服务器(Ramnode,256MB RAM,256MB Swap)在没有 Ghost 实例时内存使用情况。在我的 VPS 上,我运行了 4實例。

因此,当我使用命令在此处运行 Ghost 实例时node index.js,它会生成 5 个工作程序。

PID   USER   PRI  NI  VIRT  RES   SHR  S CPU% MEM%   TIME+  Command
10380 user    20   0  975M 80328  7712 S  0.0 30.6  0:00.00 node index.js
10381 user    20   0  975M 80328  7712 S  0.0 30.6  0:00.00 node index.js
10382 user    20   0  975M 80328  7712 S  0.0 30.6  0:00.00 node index.js
10383 user    20   0  975M 80328  7712 S  0.0 30.6  0:00.00 node index.js
10384 user    20   0  975M 80328  7712 S  0.0 30.6  0:00.00 node index.js

5名工人其实已经很多了。30%也很多。

现在,htop阅读

CPU[                               0.0%]     Tasks: 18, 7 thr; 1 running
Mem[|||||||||||||||||||        82/256MB]     Load average: 0.00 0.00 0.00 
Swp[||                          8/256MB]     Uptime: 15 days, 06:22:29

如何减少内存使用量?如果我可以调整工作线程数,我应该编辑哪个文件?如果我们这里有 Ghost 开发团队,你们对这个问题有什么计划吗?

答案1

Ghost 每个实例运行一个节点进程。我相信您在那里看到的是htop显示进程的底层线程,因此看起来您有一个 Ghost 实例正在运行,但 node/v8 有五个活动线程。尽管 JavaScript 是单线程的,但引擎/vm 本身可以是多线程的。

我们(Ghost 项目)确实关注内存占用,以便我们能尽一切努力使其尽可能小。我个人认为 80MB 已经相当不错了,但显然不同的人和不同的情况对于“相当不错”的标准有所不同。

相关内容