nodejs Мастер процесс использует всю память процессора? - PullRequest
0 голосов
/ 09 января 2020

Пытаясь понять, как nodejs работает с точки зрения использования памяти процессором, мы имеем 4 экземпляра в prod, которые замедляются из-за большой нагрузки и у нас есть балансировщик нагрузки. Было бы целесообразно добавить узел-кластер на уровне экземпляра / приложения, чтобы мы могли использовать все аппаратные возможности, используя cluster.fork, чтобы все дочерние процессы могли также напрямую прослушивать порт. Что было бы лучше, добавить больше экземпляров для балансировки нагрузки или добавить кластер узлов или сторонний PM2 et c для обработки большой нагрузки?

1 Ответ

1 голос
/ 09 января 2020

Будут работать способы масштабирования приложения вашего узла - cluster.fork или распределения нагрузки нескольких экземпляров.

Если у вас есть балансировка нагрузки, работающая без pm2, возможно, не имеет смысла добавлять его к миксу на данный момент, потому что это сложность.

Еще одна вещь, которую следует учитывать: если ваш nodejs экземпляры работают на https серверах, а не на http серверах, вы можете использовать nginx в качестве обратного прокси-сервера и использовать его для шифрования HTTPS. Вы можете nginx перенаправлять запросы на ваш экземпляр узла на http://localhost:3000. https -обработка требует больших вычислительных ресурсов, а nginx делает это более эффективно, чем nodejs.

...