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