worker_processes
Директива worker_processes задаёт количество рабочих процессов в NGINX. — NGINX Core
Описание
Директива `worker_processes` определяет, сколько рабочих процессов NGINX создаст для обработки запросов. Каждый рабочий процесс может одновременно обрабатывать множество соединений, что позволяет NGINX эффективно масштабироваться в зависимости от числа доступных ядер CPU и объёма входящих запросов. Указанное число рабочих процессов может существенно повлиять на общую производительность сервера, особенно при высокой нагрузке. Эта директива может принимать целочисленное значение, обозначающее фиксированное число рабочих процессов, или ключевое слово `auto`, которое инструктирует NGINX автоматически задать количество на основе доступных ядер CPU. При установке в `auto` NGINX вычисляет количество рабочих процессов исходя из числа обнаруженных на сервере ядер CPU. Рекомендуется задавать это значение с учётом аппаратного обеспечения и специфических потребностей приложения для достижения оптимальной производительности. На практике при настройке директивы `worker_processes` системным администраторам следует отслеживать нагрузку и показатели производительности их приложений, чтобы определить подходящее значение. Как указание слишком малого, так и слишком большого числа рабочих процессов может привести к ухудшению производительности. В некоторых средах может потребоваться тщательная настройка, чтобы учесть характеристики ожидаемой нагрузки на сервер.
Пример конфига
worker_processes auto;
Установка worker_processes выше числа доступных ядер CPU может привести к переключению контекста и снижению производительности.
Использование очень малого числа worker_processes может привести к медленным ответам при высокой нагрузке, поскольку меньше запросов будет обрабатываться одновременно.