2013-02-15 40 views
0

在Solaris中,用「netstat -i」的輸出提供類似如下:如何從Linux中的netstat -i獲取隊列字段?

root# netstat -i 
Name Mtu Net/Dest  Address  Ipkts Ierrs Opkts Oerrs Collis Queue 
lo0 8232 loopback  localhost  136799 0  136799 0  0  0 
igb0 1500 vulture  vulture  1272272 0  347277 0  0  0 

注意,有在端隊列字段。

在Linux中,用「netstat -i」給出的輸出,沒有隊列場:

[[email protected] ~]# netstat -i 
Kernel Interface table 
Iface  MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg 
eth0  1500 0 2806170  0  0  0 791768  0  0  0 BMRU 
eth1  1500 0  0  0  0  0  0  0  0  0 BMU 
eth2  1500 0  0  0  0  0  0  0  0  0 BMU 
eth3  1500 0  0  0  0  0  0  0  0  0 BMU 
lo  16436 0 1405318  0  0  0 1405318  0  0  0 LRU 

我已經想通了如何通過將-e選項以獲得在Linux中的衝突,但有一種方式來獲得在Linux中隊列

回答

0

我結束了使用

tc -s -d qdisc 

[[email protected] ~]# tc -s -d qdisc 
qdisc mq 0: dev eth2 root 
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) 
rate 0bit 0pps backlog 0b 0p requeues 0 
qdisc mq 0: dev eth3 root 
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) 
rate 0bit 0pps backlog 0b 0p requeues 0 
qdisc mq 0: dev eth0 root 
Sent 218041403 bytes 1358829 pkt (dropped 0, overlimits 0 requeues 1) 
rate 0bit 0pps backlog 0b 0p requeues 1 
qdisc mq 0: dev eth1 root 
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) 
rate 0bit 0pps backlog 0b 0p requeues 0 

這給積壓字節的數據包。

Source

0

唯一參考隊列我曾經在Linux上看到過netstat使用-s時,但這對您的用例可能太囉嗦了?

0
$ netstat -na | awk 'BEGIN { RecvQ=0; SendQ=0; } { RecvQ+=$2; SendQ+=$3; } END { print "RecvQ " RecvQ/1024; print "SendQ " SendQ/1024; }' 
RecvQ 255.882 
SendQ 0.0507812 

對於每個接口,我有骯髒的方式

[[email protected] ~]$ for qw in `/sbin/ifconfig | grep 'inet addr:' | cut -d: -f2 | awk '{print $1}'`; do echo `/sbin/ip addr | grep $qw | awk '{print $7}'` : ; echo `netstat -na | grep $qw | awk 'BEGIN { RecvQ=0; SendQ=0; } { RecvQ+=$2; SendQ+=$3; } END { print "RecvQ " RecvQ/1024; print "SendQ " SendQ/1024; }'`; done 
eth0 : 
RecvQ 0 SendQ 0 
eth2 : 
RecvQ 0.0703125 SendQ 1.56738 
: 
RecvQ 0 SendQ 0 
+0

你能解釋一下這是幹什麼的嗎?每個接口不應該有隊列嗎? – Greg 2013-02-15 20:04:55

+0

我使用grep我的本地接口IP地址來查找每個接口。 [spatel @ us-wal-db0001 net] $ netstat -na | grep 10.101.50.10 | awk'BEGIN {RecvQ = 0;的SendQ = 0; } {RecvQ + = $ 2;的SendQ + = $ 3; } END {print「RecvQ」RecvQ/1024;打印「SendQ」SendQ/1024; }' RecvQ 0.00195312 SendQ 0.65625 – Satish 2013-02-15 20:23:31