É possível reduzir o uso da memória do NodeJS (por exemplo, a plataforma de blogs do Ghost)

6
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

Acima está o uso de memória em meu servidor (Ramnode, 256MB RAM com 256MB de swap) quando não há instância do Ghost. No meu VPS eu estou executando 4 instâncias Ghost .

Então, quando eu executei uma instância do Ghost com o comando node index.js , ela gera 5 funcionários.

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 trabalhadores são realmente bastante. E 30% também é muito.

E agora, a htop de leitura

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

Como reduzir o uso de memória? Se eu puder ajustar o número de trabalhadores, que arquivo devo editar? Se tivermos equipe de desenvolvimento do Ghost aqui, você tem algum plano sobre esse assunto?

    
por Aizan Fahri 29.09.2014 / 20:15

1 resposta

6

O Ghost executa um processo de nó único por instância. Acredito que o que você está vendo é que htop mostra os encadeamentos subjacentes dos processos, então parece que você tem uma instância do Ghost em execução, mas o nó / v8 tem cinco encadeamentos ativos. Apesar do JavaScript ser single-threaded, o engine / vm pode ser multi-threaded.

Nós (o projeto Ghost) prestamos atenção na pegada da memória para que possamos fazer o que pudermos para mantê-la o menor possível. Eu pessoalmente acho que 80MB é muito bom, mas obviamente pessoas e situações diferentes têm critérios diferentes para o que é "muito bom".

    
por 01.10.2014 / 02:44