tcp_nodelay
Директива tcp_nodelay отключает Nagle's algorithm для TCP-соединений, обеспечивая связь с низкой задержкой. — NGINX HTTP Core
Описание
Директива tcp_nodelay используется в контексте HTTP-, server- и location-блоков в конфигурационных файлах NGINX. Если установить её в 'on', она отключает Nagle's algorithm для TCP-соединений, что означает, что пакеты отправляются немедленно, без ожидания накопления дополнительных данных для передачи. Это может повысить производительность приложений реального времени, где критична низкая задержка, таких как онлайн-игры, VoIP и потоковые сервисы. Когда Nagle's algorithm включён (по умолчанию), небольшие пакеты могут задерживаться, пока система пытается объединить их в большие пакеты для оптимизации использования сети. Это может привести к увеличению задержки для приложений, требующих немедленной передачи данных. Используя tcp_nodelay, администраторы могут обеспечить, что когда данные готовы к отправке, они отправляются немедленно, тем самым снижая задержку ценой возможного увеличения сетевого трафика. При использовании этой директивы важно тщательно оценивать влияние на пропускную способность сети. Директива принимает параметр-флаг; установка в 'on' включает TCP_NODELAY, тогда как 'off' включает поведение по умолчанию. Важно учитывать, что эта директива в большей степени влияет на характеристики производительности, а не на функциональность, поэтому её следует настраивать в соответствии с конкретными потребностями обслуживаемого приложения.
Пример конфига
server {
listen 80;
location / {
tcp_nodelay on;
proxy_pass http://backend;
}
}Установка tcp_nodelay в значение on может увеличить сетевой трафик, поскольку пакеты отправляются немедленно.
Применяйте с осторожностью в приложениях, где эффективность использования пропускной способности важнее низкой задержки.