Инструменты пользователя

Инструменты сайта


nodejs:memory:bad_alloc

Максимальное количество диапазонов mmap() и как его установить в Linux?

в некоторых системах, даже увеличивая лимит памяти узла с помощью –max-old-space-size, этого недостаточно, и возникает ошибка ОС, подобная этой:

terminate called after throwing an instance of 'std::bad_alloc'
  what():  std::bad_alloc
Aborted (core dumped)

В этом случае, вероятно, это связано с тем, что вы достигли максимального значения mmap для каждого процесса.

Вы можете проверить max_map_count, запустив

sysctl vm.max_map_count

и увеличивает его, запустив

sysctl -w vm.max_map_count=655300

и исправить, чтобы он не сбрасывался после перезагрузки, добавив эту строку

vm.max_map_count=655300

in /etc/sysctl.conf file.

Хороший способ проанализировать ошибку — запустить процесс с помощью strace.

strace node --max-old-space-size=128000 my_memory_consuming_process.js
nodejs/memory/bad_alloc.txt · Последние изменения: 2023/05/25 12:32 — werwolf