网络是所有子系统中最难监控的了。首先是由于网络是抽象的,更重要的是许多影响网络的因素并不在我们的控制范围之内。这些因素包括,延迟、冲突、阻塞等等。
大部分的以太网络都是自适应速度的,因为一个网络中可能有不同的网络设备采用不同的速率和工作模式(全双工或半双工)。大部分企业网络都工作在100到1000BaseTX。ethtool命令可以设置网卡的工作速率和模式。
# ethtool eth0
Settings for eth0:
Supported ports: [ TP MII ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
Supports auto-negotiation: Yes
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
Advertised auto-negotiation: Yes
Speed: 10Mb/s
Duplex: Half
Port: MII
PHYAD: 32
Transceiver: internal
Auto-negotiation: on
Supports Wake-on: pumbg
Wake-on: d
Current message level: 0x00000007 (7)
Link detected: yes
我们可以看到网卡工作在10Mb/s,模式为半双工,并且打开了自适应开关。我们通过下列命令强制设置网卡工作在100Mb/s全双工模式,并关闭自适应功能。
# ethtool -s eth0 speed 100 duplex full autoneg off
再次运行ethtool显示如下:
# ethtool eth0
Settings for eth0:
Supported ports: [ TP MII ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
Supports auto-negotiation: Yes
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
Advertised auto-negotiation: No
Speed: 100Mb/s
Duplex: Full
Port: MII
PHYAD: 32
Transceiver: internal
Auto-negotiation: off
Supports Wake-on: pumbg
Wake-on: d
Current message level: 0x00000007 (7)
Link detected: yes
用iptraf工具可以清楚的看到每个网卡的工作情况。
# iptraf –d eth0
利用iptraf还可以监听固定TCP端口的流量,如对于Web服务器我们希望监听80端口的流量,对于邮件服务器我们关注25端口的流量。
网络中最常见的错误就是冲突,由于网络中目前基本采用交换机环境,因此冲突问题已被消除。但是当网络流量不断增大的时候,就会出现丢包,网卡过载等情况。在网络流量很大的时候我们用sar命令来给出网络中可能的错误:
# sar -n FULL 5 100
Linux 2.6.9-55.ELsmp (sapulpa) 06/23/2007
11:44:32 AM IFACE rxpck/s txpck/s rxbyt/s txbyt/s rxcmp/s txcmp/s rxmcst/s
11:44:37 AM lo 6.00 6.00 424.40 424.40 0.00 0.00 0.00
11:44:37 AM eth0 0.00 0.00 0.00 0.00 0.00 0.00 0.00
11:44:37 AM sit0 0.00 0.00 0.00 0.00 0.00 0.00 0.00
11:44:32 AM IFACE rxerr/s txerr/s coll/s rxdrop/s txdrop/s txcarr/s rxfram/s rxfifo/s txfifo/s
11:44:37 AM lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
11:44:37 AM eth0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
11:44:37 AM sit0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
11:44:32 AM totsck tcpsck udpsck rawsck ip-frag
11:44:37 AM 297 79 8 0 0
rxerr/s是接受错误率;txerr/s是发送错误率;coll/s冲突率;rxdrop/s接受帧丢失率;txdrop/s发送帧丢失率;txcarr/s载波错误率;rxfram/s帧排列错误;rxfifo/s接受FIFO错误;txfifo/s发送FIFO错误。从上面输出看出各种错误为零,证明网络工作良好。
总的来说监视网络性能,我们有遵循一下几点:
1. 检查所有网络接口确保他们都运行在正确的速率;
2. 检查每块网卡的吞吐量确保没有造成过载;
3. 检查流量的类型确保正确的数据流在传送。