в некоторых системах, даже увеличивая лимит памяти узла с помощью –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