День добрый, коллеги! На данный момент у нас есть 4 одноядерных сервера, на каждом из которых запускается процесс node.
Однако, это не очень удобно. Начали присматриваться к pm2, однако встала проблема быстрого увеличения рабочих процессов. Если сейчас мы можем доставить нужных серверов и запустить docker там, то что делать с pm2? Ведь для увеличения кол-ва ядер/оперативки/жд необходимо сервер перезагружать. Как такое можно провернуть с одним сервером?
Можно, конечно, поставить nginx/haproxy/etc, поднять сервер с 4 ядрами сейчас, запустить в нем pm2, а как потребуется поднять еще сервер и добавить его в балансировщик, но какой тогда будет толк от того, что мы используем многоядерные процы?
un1t: потому что у нас нагрузка неравномерная. Может быть день, когда нам нужно 10 ядер, а может быть день, когда всего 2. И чтобы не держать постоянно максимум, мы на время прстоя отключаем сервера (и не платим за них соответственно).
А вот чтобы прокачать обратно сервак придется перезагрузить (чтобы накинуть ядер). И у юзеров сайт будет какое-то время недоступен.
А зачем вам 4 процесса node? JS не справляется асинхронно? Посмотрите на флаг NODE_ENV — на продакшене должно быть особое значение, иначе в express есть оверхед на мелкие объекты.