Я работаю во встроенной среде, где ресурсы довольно ограничены. Мы пытаемся использовать node.js, который работает хорошо, но обычно потребляет около 60 мегабайт виртуальной памяти (используется реальная память около 5 мегабайт). Учитывая наши ограничения, это слишком большая виртуальная память; мы можем позволить себе позволить node.js использовать максимум 30 мегабайт виртуальной машины.Как ограничить использование виртуальной памяти узлом.js?
Есть несколько параметров командной строки для Node.js, таких как «--max_old_space_size», «--max_executable_size», и «--max_new_space_size», но после экспериментов я обнаружил, что все они контролируют реальную память а не максимальный объем виртуальной памяти.
Если это важно, я работаю в варианте Linux ubuntu в архитектуре ARM.
Есть ли какой-либо параметр или параметр, который позволит установить максимальный объем виртуальной памяти, который разрешен для использования процессом node.js?
Почему это должно быть проблемой? Linux использует избыточное распределение: эта виртуальная память будет существовать только в виде записей внутри таблицы страниц процесса, пока она не будет * использована *. –
Hm. Я не уверен. Это встроенная среда (это означает: отсутствие дискового пространства), не будут ли все виртуальные распределения использовать какую-то реальную память? Я положу эту мысль моему боссу, но у меня такое чувство, что это не будет иметь никакого значения; Мне было приказано уменьшить площадь и утверждать, что мне не нужно будет нести большой вес. «Клиент всегда прав». Кроме того, я столкнулся с другой проблемой; Я написал функцию, использующую setrlimit(), чтобы ограничить использование виртуальной памяти менее чем на 55 мегабайт, а теперь node.js выходит с ошибкой malloc. Какие-либо предложения? – Mike
Привет Майк. Как вы это решили? – Industrial