$tcpinfo_rcv_space
变量 $tcpinfo_rcv_space 返回为入站 TCP 缓冲区分配的内存量。 — NGINX Core (HTTP)
$tcpinfo_rcv_space
NGINX Core (HTTP)
说明
NGINX 中的 $tcpinfo_rcv_space 变量提供有关 TCP 接收缓冲区大小的信息,这对管理通过 TCP 的入站连接至关重要。该变量反映了 TCP 协议栈为处理入站数据包而分配的接收空间的当前值。它在 TCP 层建立连接时设置,并根据系统和应用级参数进行配置,例如可能限制最大接收缓冲区大小的 TCP_MAX_RCV_SPACE 值。 当建立连接时,TCP 内核会为入站数据包分配一部分内存,该内存会被填满直到达到指定限制。随着数据被接收,可用的接收空间会减少,从而影响入站连接的数据流。该变量在识别网络性能问题或在高负载下监控应用行为时尤其有用,因为它可以指示应用是否适当地利用了可用资源。 对于 $tcpinfo_rcv_space 的典型值,取决于底层系统配置和网络条件,可能差异很大,但通常会反映标准的 TCP 缓冲区大小,范围可能从几 KB 到几 MB,具体取决于系统设置和负载。对这些值进行合理调优可以优化性能并降低数据传输延迟。
配置示例
server {
listen 80;
location /status {
add_header X-TCP-Receive-Space "$tcpinfo_rcv_space";
# Additional status logic...
}
}子系统
http可缓存
否上下文
http, server, location⚠
确保 TCP 协议栈被配置为允许较大的接收缓冲区;否则,该变量可能返回低于预期的值。
⚠
并非所有操作系统都可能通过 $tcpinfo_rcv_space 变量公开 TCP 接收缓冲区大小,从而导致不同平台上的行为不一致。
⚠
该变量仅适用于管理 TCP 连接的上下文,例如 `http` 和 `stream`。在其他上下文中,它可能不会返回有意义的数据。