cat /proc/net/udp | egrep "sl|3ADBFE0A"
sl local_address rem_address st tx_queue rx_queue tr tm->when retrnsmt uid timeout inode ref pointer drops
16: 3ADBFE0A:007B 00000000:0000 07 00000000:00000000 00:00000000 00000000 74 0 40124 2 f203ca80 0
509: 3ADBFE0A:0868 00000000:0000 07 00008C00:00000000 00:00000000 00000000 0 0 79208333 2 ea226340 0
我想寻求对输出字段cat /proc/net/udp
(尤其是)更深入、更适合初学者的解释tx_queue
。
来自proc(5) 手册页:
/proc/net/udp
保存 UDP 套接字表的转储。除了调试之外,大部分信息都无用。“sl”值是套接字的内核哈希槽,[和]“local_address”是本地地址和端口号对。“rem_address”是远程地址和端口号对(如果已连接)。“St”是套接字的内部状态。“tx_queue”和“rx_queue”是内核内存使用情况的传出和传入数据队列。UDP 不使用“tr”、“tm->when”和“rexmits”字段。“uid”字段保存套接字创建者的有效 UID。
如果我的理解正确的话,当这个tx_queue
值大于 0 时是否意味着有更多的数据包等待发送,而应用程序的速度不够快,无法发送这些数据包?
答案1
如果tx_queue
大于 0,则表示操作系统无法像发送应用程序尝试发送的那样快速地传送数据包。我猜这也可能意味着以太网流量控制正在工作。无论如何,发送应用程序不是罪魁祸首。
的实际值tx_queue
将是十六进制。