Можно ли уменьшить использование памяти 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, 256 МБ ОЗУ с 256 МБ подкачки), когда нет экземпляра Ghost. На моем 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
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, а в узле / v8 пять активных потоков. Несмотря на то, что JavaScript является однопоточным, сам движок / vm может быть многопоточным.
Мы (проект Ghost) обращаем внимание на объем памяти, чтобы мы могли делать все, что можем, чтобы он был как можно меньше. Лично я считаю, что 80MB довольно хорошо, но, очевидно, разные люди и ситуации имеют разные критерии для того, что "довольно хорошо".