![是否有可能减少 NodeJS 内存使用量(例如 Ghost 博客平台)](https://linux22.com/image/642690/%E6%98%AF%E5%90%A6%E6%9C%89%E5%8F%AF%E8%83%BD%E5%87%8F%E5%B0%91%20NodeJS%20%E5%86%85%E5%AD%98%E4%BD%BF%E7%94%A8%E9%87%8F%EF%BC%88%E4%BE%8B%E5%A6%82%20Ghost%20%E5%8D%9A%E5%AE%A2%E5%B9%B3%E5%8F%B0%EF%BC%89.png)
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 已经相当不错了,但显然不同的人和不同的情况对于“相当不错”的标准有所不同。