如何在 Linux 中监视当前输出/接收队列长度

如何在 Linux 中监视当前输出/接收队列长度

我想检查我的网络的容量和性能。除了通过 Sar 检查 txkB/s 和 rxkB/s 之外,我还想查看网络接口的平均队列长度(以便计算接口中的平均排队时间)。似乎 netstat 可以提供每个套接字的队列长度,是否可以获取每个接口的静态数据(有点像 Windows 中的网络接口\输出队列长度)?

一个相关的、有点相反的问题是如何查看 Windows 上的 TCP 发送和接收队列大小?

谢谢

答案1

它在 IF-MIB 中可用。我假设您已经有一个支持 IF-MIB 的 snmpd 正在运行,如果没有,您需要安装类似 net-snmp 的东西。之后,进入框并查找:

http://www.oidview.com/mibs/0/IF-MIB.html

IF-MIB::ifOutErrors.4 = Counter32: 0
IF-MIB::ifOutQLen.1 = Gauge32: 0

从 MIB 定义来看:

输出数据包队列的长度(以数据包为单位)。

答案2

要查看接口当前的 txqueue 队列占用情况 - 查看命令返回的backlog(以b字节和数据包为单位) (例如 eth0):ptc

tc -s -d qdisc ls dev eth0

相关内容