aio

Директива 'aio' включает асинхронные операции ввода-вывода в NGINX для повышения производительности. — NGINX HTTP Core

aio
httpserverlocation
Синтаксисaio on | off | io_uring;
По умолчаниюoff
Контекстhttp, server, location
МодульNGINX HTTP Core
Аргументы1

Описание

Директива 'aio' в NGINX позволяет настраивать асинхронные операции ввода-вывода при чтении и записи файлов. При включении асинхронного ввода-вывода NGINX может обслуживать больше соединений, потому что он не блокируется на операциях ввода-вывода, позволяя продолжать обработку других запросов, пока выполняются файловые операции. Это особенно полезно для приложений, которые раздают статические файлы или выполняют загрузку/выгрузку файлов. Эта директива принимает один аргумент, который указывает метод асинхронного ввода-вывода. Для Unix-подобных операционных систем допустимые варианты: `off` (отключить асинхронный ввод-вывод), `on` (включить его) или `io_uring` (использовать интерфейс io_uring для асинхронных операций ввода-вывода, если он поддерживается). При установке NGINX будет использовать асинхронный ввод-вывод для операций чтения/записи файлов, что значительно увеличивает пропускную способность при высокой нагрузке и снижает задержки.

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

http {
    aio on;
    server {
        location /files/ {
            root /data;
        }
    }
}

Убедитесь, что ваша операционная система поддерживает выбранный метод I/O (например, io_uring требует недавней версии Linux kernel).

Будьте готовы к потенциальному увеличению сложности при отладке асинхронных операций по сравнению с традиционным blocking I/O.