iocp_threads

Директива 'iocp_threads' задаёт количество потоков завершения I/O для управления асинхронными операциями в NGINX на Windows. — NGINX Core

iocp_threads
events
Синтаксисiocp_threads number;
По умолчаниюauto (number of CPU cores)
Контекстevents
МодульNGINX Core
Аргументы1

Описание

Директива `iocp_threads` специфична для runtime NGINX на Windows и позволяет настраивать, сколько потоков выделяется для обработки завершения I/O с использованием модели IOCP (I/O Completion Ports). Эта модель обеспечивает масштабируемый подход к обработке множества одновременно выполняемых I/O-операций, что особенно полезно для высокопроизводительных нагрузок. По умолчанию число потоков устанавливается равным числу ядер CPU, но его можно явно задать для оптимизации производительности в зависимости от потребностей приложения. Каждый поток завершения I/O работает независимо, обрабатывая завершённые I/O-запросы по сигналу завершения, что позволяет лучше использовать системные ресурсы. При использовании `iocp_threads` администраторам следует учитывать связь между числом потоков и ожидаемой нагрузкой. Небольшое число потоков может привести к узким местам при высокой нагрузке, тогда как чрезмерно большое — к издержкам переключения контекста. Поэтому рекомендуется проводить тестирование производительности, чтобы определить оптимальную конфигурацию. Кроме того, эта директива эффективна прежде всего на платформах Windows, где используется модель IOCP, и не влияет на Linux или другие операционные системы, которые не реализуют эту модель. Директива определяется в контексте 'events' конфигурации NGINX, где располагается большинство настроек, связанных с производительностью.

Пример конфига

events {
    iocp_threads 4;
}

Установка чрезмерно высокого значения может привести к конкуренции за CPU и увеличению накладных расходов на переключение контекста.

Неадекватная конфигурация может привести к ухудшению производительности при высокой нагрузке.