PM2 в режиме кластера порождает равное количество экземпляров классов при запуске? - PullRequest
1 голос
/ 29 апреля 2019

Мне интересно, если запуск процесса узла в режиме кластера также означает, что я запускаю несколько экземпляров классов и циклов ожидания.Одним из наиболее актуальных примеров этого является кукловод, который посещает внешние веб-сайты, чтобы получить информацию и обновить нашу базу данных.

Я запускаю это на t2.medium в AWS.Если я запусту мое приложение для узлов в режиме кластера, оно увеличит нагрузку на процессор?

Я, к сожалению, сам не могу тщательно протестировать это.У меня нет достаточных разрешений в моем кусочке рая, и если я использую все свои кредиты ЦП, я ничего не могу сделать до конца дня, ха-ха.

1 Ответ

1 голос
/ 29 апреля 2019

Да , если вы запускаете приложение в режиме кластера, PM2 будет использовать модуль кластера Node.js для порождения одного потока на экземпляр. Если вы запускаете один браузер в каждом из этих экземпляров, это может быстро сложиться и потенциально «взорвать процессор», как вы сказали, положив его.

Вы можете ограничить количество запущенных экземпляров, используя параметр -i ( docs ):

Пример (количество рабочих будет ограничено 2):

pm2 start crawler.js -i 2

Имейте в виду, что ваши экземпляры Node.js будут более или менее простаивать (при условии, что вы не выполняете там никаких сложных вычислений), так как браузеры выполняют реальную работу. Это может быть возможность использовать библиотеку для обработки пула браузеров (отказ от ответственности: я являюсь автором связанной библиотеки). Это усложнит работу с несколькими браузерами в вашем приложении и упростит оценку использования памяти / ЦП вашего приложения при тестировании и удалении «уровня сложности» в режиме кластера PM2.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...