Назад | Перейти на главную страницу

количество рабочих процессов nginx

Я настраиваю nginx для обслуживания установки Drupal и, похоже, нахожу противоречивую информацию о настройке рабочих процессов nginx. Один сайт говорит, что вам нужно два, один говорит, что вам нужно пять, один говорит, что на процессор ...

Как выбрать количество рабочих процессов nginx? Если это имеет значение, это гостевая виртуальная машина в кластере VMWare, и я дал ей один виртуальный процессор.

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

worker_processes  1;

Вам нужно будет увеличить это значение только в том случае, если вы обнаружите, что рабочий nginx тратит слишком много времени на ввод-вывод. Этого не произойдет, пока он не будет обслуживать сотни запросов в секунду.

Вы также можете найти эти настройки полезными.

worker_rlimit_nofile 8192;

events {
    worker_connections  2048;
    use epoll;
}

На SMP-системах должно быть запущено как минимум nCPU рабочих процессов: на четырехъядерном - четыре и т. Д. Этого достаточно для проксирования.

Если вы собираетесь обслуживать некоторые сайты с большим количеством статического контента, было бы лучше добавить больше воркеров - по одному на диск.

Если ваша дисковая подсистема слишком плохая или загружена слишком высоко, рабочие процессы nginx могут быть заблокированы при операциях ввода-вывода и не смогут обслуживать другие запросы. В этом случае вам следует увеличить количество рабочих процессов до некоторого подходящего значения (может быть десятки) или добавить немного памяти для дискового кеша.

Посмотрите распечатку "ps ax": рабочие, находящиеся в состоянии "D", заблокированы. Увеличивайте до тех пор, пока рабочие процессы nCPU не будут заблокированы.