worker_aio_requests

Директива 'worker_aio_requests' настраивает максимальное количество асинхронных операций ввода-вывода, которые каждый рабочий процесс может выполнять одновременно. — NGINX Core

worker_aio_requests
events
Синтаксисworker_aio_requests number;
По умолчаниюnone
Контекстevents
МодульNGINX Core
Аргументы1

Описание

Директива 'worker_aio_requests' используется в контексте 'events' для указания ограничения на число одновременных асинхронных I/O (AIO) запросов, которые может обрабатывать каждый рабочий процесс NGINX. Эта директива особенно полезна в сценариях, где NGINX используется для передачи статических файлов или эффективной обработки больших медиафайлов с помощью асинхронных механизмов. Устанавливая эту директиву, администраторы могут лучше управлять использованием ресурсов рабочих процессов и оптимизировать производительность в зависимости от возможностей сервера и характера нагрузки.\n\nЗначение должно быть положительным целым числом, указывающим максимальное количество AIO-запросов, которые рабочий процесс может поставить в очередь. Если рабочий процесс превысит это число, он не сможет принимать новые AIO-запросы до завершения части поставленных в очередь запросов. Эта директива помогает настраивать производительность приложений NGINX, активно использующих асинхронные файловые операции, находя баланс между пропускной способностью и потреблением ресурсов. Поэтому значение должно определяться исходя из конкретной нагрузки и результатов тестирования, чтобы обеспечить оптимальную производительность без перегрузки рабочих процессов.\n\nПоведение 'worker_aio_requests' может существенно влиять на время отклика сервера и общую пропускную способность, особенно в сценариях с высокой нагрузкой. Поэтому важно мониторить производительность сервера и при необходимости корректировать это значение в зависимости от требований приложения и возможностей аппаратного обеспечения.

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

events {
    worker_aio_requests 1024;
}

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

Если задать его слишком высоким, это может привести к увеличению использования памяти и потенциальному исчерпанию ресурсов, особенно при высокой параллельности на менее мощном оборудовании.