Почему выскочка пожирает всю мою оперативную память?

Я использую Ubuntu Server 12.04 LTS в EC2. У меня есть несколько демонов node.js, работающих как сервисы в составе upstart, наряду с обычными средствами инициализации. После каждого развертывания, во время которого все демоны node.js перезапускаются, процесс init начинает расти со скоростью примерно 0,5 МБ / мин. Если я перезапущу определенный из моих демонов, init возвращается к <50MB.

Что мог сделать мой процесс, чтобы выскочка съела мою оперативную память?

Выход сверху:

1 августа 23:51 UTC

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND          
17627 root      20   0  307m  90m 3444 S    0  5.3 146:18.06 chef-client        
    1 root      20   0 67680  44m 1140 S    1  2.6  59:11.04 init               
17857 appserve  20   0  927m  30m 7024 S    4  1.8   2:01.79 node               
17963 appserve  20   0  732m  26m 6504 S    2  1.6   0:36.03 node               
18363 appserve  20   0  728m  21m 6316 S    0  1.3   0:00.71 node               
14798 postgres  20   0  533m  20m  19m S    0  1.2   1:38.83 postgres           
18091 appserve  20   0  726m  16m 6320 S    0  1.0   0:00.66 node               
14801 postgres  20   0  533m  16m  15m S    0  1.0   4:07.21 postgres           
17993 postgres  20   0  538m  16m  12m S    0  1.0   0:09.56 postgres           
17865 postgres  20   0  537m  16m  12m S    0  0.9   0:15.00 postgres          

2 августа 01:32 UTC

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND          
    1 root      20   0  116m  94m 1140 S    0  5.6  59:51.25 init               
17627 root      20   0  304m  87m 3444 S    0  5.2 147:04.41 chef-client        
17963 appserve  20   0  737m  35m 7192 S    1  2.1   1:25.47 node               
17857 appserve  20   0  926m  27m 7028 S    3  1.6   5:41.82 node               
18363 appserve  20   0  728m  22m 6316 S    0  1.3   0:00.98 node               
14798 postgres  20   0  533m  20m  19m S    0  1.2   1:39.29 postgres           
18091 appserve  20   0  726m  16m 6320 S    0  1.0   0:00.66 node               
14801 postgres  20   0  534m  16m  15m S    0  1.0   4:08.34 postgres           
17993 postgres  20   0  538m  16m  12m S    0  1.0   0:23.08 postgres           
17865 postgres  20   0  537m  16m  13m S    0  1.0   0:30.20 postgres          

** Обновление: похоже, это было слишком много, чтобы выплеснуть на стандартный вывод. Спасибо за помощь ребята! **

1 ответ

Короткий ответ: выскочка поглощает всю вашу оперативную память, потому что система не имеет ничего общего с оперативной памятью. Ваша система не находится под давлением памяти, так что она практически просто использует ОЗУ, где бы она ни находилась. Требуется усилие, чтобы восстановить память, и пока система не нуждается, это просто не беспокоит.

Другие вопросы по тегам