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 已经相当不错了,但显然不同的人和不同的情况对于“相当不错”的标准有所不同。