Aiz*_*hri 7 memory node.js ghost-blog
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
Run Code Online (Sandbox Code Playgroud)
以上是没有 Ghost 实例时我的服务器(Ramnode,256MB RAM 和 256MB Swap)上的内存使用情况。在我的 VPS 上,我正在运行 4 个Ghost实例。
因此,当我使用命令在此处运行 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
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
如何减少内存使用?如果我可以调整工人的数量,我应该编辑哪个文件?如果我们这里有 Ghost 开发团队,您对这个问题有什么计划吗?
小智 6
Ghost 每个实例运行一个节点进程。我相信您在那里看到的是htop
显示进程的底层线程,因此看起来您有一个 Ghost 实例正在运行,但 node/v8 有五个活动线程。尽管 JavaScript 是单线程的,但引擎/vm 本身也可以是多线程的。
我们(Ghost 项目)确实注意内存占用,以便我们可以做任何我们可以做的事情,使其尽可能小。我个人认为 80MB 相当不错,但显然不同的人和情况对什么是“相当不错”有不同的标准。