我确实设置了kern.ipc.somaxconn
内核参数来调整服务器上传入连接的最大积压 TCP 大小。我现在想读取此积压中当前待处理的请求数量。
我一度以为这是'ESTABLISED'
netstat 输出中的状态连接数,但我明白应用程序正在处理的请求也可能处于这种状态。
我必须在 /proc/ 文件系统中读取一个文件吗?这是我错过的 netstat 选项吗?
答案1
如果我正确理解了这个问题,我相信您指的是来自 netstat 的 Recv-Q 和 Send-Q 数字。
如果这些数字不接近于零,那么很有可能是硬件出现了问题,或者是您的链路已经饱和。
答案2
TCP 连接的数据首先被接收到位于内核空间的缓冲区中。在这种情况下,Recv-Q 非零。然后,如果进程调用 read 被复制到用户空间中。如果没有(应用程序已饱和),它们将保留在内核缓冲区中。
PS:您使用的是Linux还是FreeBSD?