Как выполняется балансировка в модели prefork? - PullRequest
0 голосов
/ 30 октября 2018

У меня есть сервер под python 2.7 (на основе торнадо).

Этот сервер работает в режиме prefork. Это означает, что родительский процесс связывается с портом, а затем разветвляется с фиксированным номером дочернего процесса. Затем каждый ребенок будет слушать и создавать пул потоков, который будет принимать входящий запрос.

У меня вопрос, как в такой ситуации справляется «балансировка нагрузки»? Как ядро ​​выбирает, какой экземпляр будет выполнять принятие? Есть ли у меня контроль над этим?

Я пытаюсь понять поведение, которое я наблюдаю на некоторых серверах, и количество порожденных детей. Те же 2 или 3 процесса принимают весь запрос. Обратите внимание, что при высокой нагрузке он снова перебалансируется. Но такое поведение не будет проявляться в каждой архитектуре, у некоторого класса серверов будет полностью сбалансированный список дочерних элементов, в то время как другие архитектуры вообще не будут однородными.

...