кластер nodejs, распределяющий соединение

avatar
jiajianrong
8 апреля 2018 в 09:55
345
1
0

В документе nodejs API указано

Модуль кластера поддерживает два метода распределения входящих соединения.

Первый (и используемый по умолчанию на всех платформах, кроме Windows), представляет собой циклический подход, при котором главный процесс прослушивает порт, принимает новые подключения и распределяет их по воркерам в циклическом режиме, с некоторыми встроенными умными способностями, чтобы избежать перегрузка рабочего процесса.

Второй подход заключается в том, что главный процесс создает процесс прослушивания. socket и отправляет его заинтересованным работникам. Затем рабочие принимают входящие соединения напрямую.

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

Я знаю, что PM2 использует первый, но почему он не использует второй? Только из-за unbalnced distribution? спасибо.

Источник

Ответы (1)

avatar
jiajianrong
17 августа 2018 в 02:46
0

Второй может увеличить нагрузку на ЦП, когда каждый дочерний процесс пытается «захватить» отправленный мастер сокета.