$tcpinfo_rttvar
Переменная $tcpinfo_rttvar возвращает величину вариации времени RTT для TCP-соединений в микросекундах. — NGINX Core (HTTP)
Описание
Переменная $tcpinfo_rttvar в NGINX предоставляет диагностическую информацию, связанную со стабильностью задержки TCP-соединений, указывая на вариацию времени прохождения туда и обратно (RTT). Эта метрика выводится из информации стека TCP, конкретно измеряя дисперсию значений RTT, наблюдаемых для пакетов, отправленных по TCP-соединению. Когда клиент отправляет запрос, NGINX фиксирует TCP-информацию для этой сессии, которая включает значения RTT, как они сообщаются стеком TCP операционной системы. Как правило, $tcpinfo_rttvar становится доступной только после завершения TCP-рукопожатия, и она особенно полезна при настройке производительности и в сценариях мониторинга. Типичные значения могут существенно варьироваться в зависимости от сетевых условий и особенностей трафика: более низкие значения указывают на более стабильную и последовательную сетевую задержку, тогда как более высокие значения свидетельствуют о нестабильности. Поэтому мониторинг этой переменной может помочь в диагностике сетевых проблем, влияющих на производительность приложения и опыт пользователя. Эта переменная в основном устанавливается каждый раз, когда NGINX обрабатывает запрос по TCP-соединению в сценариях, где применимы метрики TCP. Вы можете использовать её значение в различных контекстах, например в логировании или условных конфигурациях, чтобы применять адаптированные оптимизации в зависимости от наблюдаемой вариации RTT во время запроса.
Пример конфига
log_format my_logging_format '$remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent" $tcpinfo_rttvar'; access_log /var/log/nginx/access.log my_logging_format;
Подсистема
httpКэшируется
НетКонтексты
http, server, location, if$tcpinfo_rttvar доступна только для TCP-соединений и не будет работать для UDP.
Убедитесь, что в настройках ОС включено получение информации о TCP, если вы не видите ожидаемых значений.
Значения доступны только после TCP-рукопожатия; обращение к этой переменной слишком рано в процессе обработки запроса может привести к пустым результатам.