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 с командой 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, у вас есть какие-нибудь планы по этому поводу?
Ghost запускает процесс с одним узлом для каждого экземпляра. Я считаю, что вы видите это htop
показывает основные потоки процессов, поэтому похоже, что у вас запущен один экземпляр Ghost, но у node / v8 есть пять активных потоков. Несмотря на то, что JavaScript является однопоточным, сам engine / vm может быть многопоточным.
Мы (проект Ghost) обращаем внимание на объем памяти, чтобы мы могли делать все, что в наших силах, сохраняя его как можно меньше. Я лично считаю, что 80 МБ - это неплохо, но, очевидно, у разных людей и ситуаций разные критерии того, что «неплохо».