$tcpinfo_rcv_space

Переменная $tcpinfo_rcv_space возвращает объём памяти, выделенной для входного TCP-буфера. — NGINX Core (HTTP)

$tcpinfo_rcv_space NGINX Core (HTTP)

Описание

Переменная $tcpinfo_rcv_space в NGINX предоставляет информацию о размере буфера приёма TCP, что важно для управления входящими TCP-соединениями. Эта переменная отражает текущее значение объёма приёма, выделенного TCP-стеком для обработки входящих пакетов данных. Она устанавливается при установлении соединения на уровне TCP и определяется параметрами системы и приложения, такими как TCP_MAX_RCV_SPACE, который может ограничивать максимальный размер буфера приёма. При установлении соединения TCP-ядро выделяет часть памяти для входящих пакетов данных, которая заполняется до достижения указанного предела. По мере приёма данных доступный объём приёма уменьшается, влияя на поток входящих соединений. Эта переменная особенно полезна для выявления проблем с сетевой производительностью или для мониторинга поведения приложения под нагрузкой, так как она может показать, использует ли приложение доступные ресурсы эффективно. Типичные значения $tcpinfo_rcv_space могут значительно варьироваться в зависимости от конфигурации системы и состояния сети, но часто соответствуют стандартным размерам TCP-буферов, которые могут составлять от нескольких килобайт до нескольких мегабайт в зависимости от системных настроек и нагрузки. Корректная настройка этих параметров может привести к оптимизированной производительности и снижению задержек при передаче данных.

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

server {
    listen 80;

    location /status {
        add_header X-TCP-Receive-Space "$tcpinfo_rcv_space";
        # Additional status logic...
    }
}

Подсистема

http

Кэшируется

Нет

Контексты

http, server, location

Убедитесь, что стек TCP настроен на разрешение больших размеров буфера приёма; в противном случае переменная может возвращать значения ниже ожидаемых.

Не все операционные системы могут раскрывать размер буфера приёма TCP через переменную $tcpinfo_rcv_space, что приводит к расхождениям в поведении на разных платформах.

Эта переменная применима только в контекстах, где управляются TCP-соединения, таких как `http` и `stream`. В других контекстах она может не возвращать осмысленных данных.