Я использую довольно простой сервер на машине с ограниченными ресурсами. Узкое место, на которое я нахожусь, состоит в том, что моя учетная запись ограничена 40 процессами / потоками, работающими одновременно. Когда я запускаю свое приложение nodejs и проверяю htop, я вижу, что мой сервер узлов запускает 1 основной поток и 10 дочерних потоков. 5 дополнительных процессов выполняются с помощью forever
для выполнения скрипта узла (я хотел использовать pm2, но он использовал слишком много процессов).
Дело в том, что я хочу иметь возможность иметь 2 экземпляра одновременно мой сервер работает одновременно (основная производственная ветвь и ветка разработки, которая будет использоваться для дальнейшей разработки), так что это приводит к 32/40 процессам.
Добавьте тот факт, что я использую tmux с пара windows для мониторинга и управления моим сервером, и я в основном достигаю предела. Если я достигну предела и выйду из системы, я не смогу s sh снова войти в систему и должен связаться со службой поддержки, чтобы убить некоторые из моих процессов. Это не очень хорошо для производственной среды.
Итак, я хотел бы спросить, есть ли способ ограничить количество потоков, используемых моим nodejs сервером? Я подозреваю, что nodejs сам использует только один поток, поэтому я просматривал свои зависимости, но не упомянул о нескольких запущенных потоках.
nodejs version: v12.9.0
dependencies:
"body-parser": "^1.19.0",
"commander": "^4.1.1",
"cors": "^2.8.5",
"csv-parse": "^4.8.5",
"csv-writer": "^1.6.0",
"express": "^4.17.1",
"jsonwebtoken": "^8.5.1",
"request": "^2.88.0",
"winston": "^3.2.1",
"winston-daily-rotate-file": "^4.4.2"
Наиболее правдоподобным решением сейчас кажется прекратить использовать forever
и просто написать свой собственный простой скрипт bash или python с бесконечным временем l oop и простыми условиями. Но я бы предпочел использовать существующее протестированное программное обеспечение, которое имеет некоторые дополнительные возможности мониторинга.