网络性能直接影响应用程序对外提供服务的稳定性和可靠性
-
ping命令检测网络的连通性
如果网络反应缓慢,或连接中断,可以用ping来测试网络的连通情况time值(单位为毫秒)显示了两台主机之间的网络延时情况。如果此值很大,则表示网络的延时很大。
在这个输出的最后,是对上面输出信息的一个总结。packet loss表示网络的丢包率,此值越小,表示网络的质量越高。 -
通过
netstat -i
命令组合检测网络接口状况
netstat命令提供了网络接口的详细信息E540:~$ netstat -i Kernel Interface table Iface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg docker0 1500 0 0 0 0 0 0 0 0 BMU enp4s0 1500 0 0 0 0 0 0 0 0 BMU lo 65536 5932 0 0 0 5932 0 0 0 LRU wlp5s0 1500 199831 0 73 0 169157 0 0 0 BMRU
- face表示网络设备的接口名称
- MTU表示最大传输单元,单位为字节
- RX-OK/TX-OK表示已经准确无误地接收/发送了多少数据包
- RX-ERR/TX-ERR表示接收/发送数据包时产生了多少错误
- RX-DRP/TX-DRP表示接收/发送数据包时丢弃了多少数据包
- RX-OVR/TX-OVR表示由于误差而遗失了多少数据包
- Flg表示接口标记。其中,各个选项的含义如下
- L表示该接口是个回环设备
- B表示设置了广播地址
- M表示接收所有数据包
- R表示接口正在运行
- U表示接口处于活动状态
- O表示在该接口上禁用arp
- P表示一个点到点的连接
正常情况下,RX-ERR/TX-ERR、RX-DRP/TX-DRP和RX-OVR/TX-OVR的值都应该为0。如果这几个选项的值不为0,并且很大,那么网络质量肯定有问题,网络传输性能也一定会下降
-
通过
netstat -r
命令组合检测系统的路由表信息
在网络不通或者网络异常时,首先要检查系统的路由表信息。netstat -r
的输出结果与route
命令的输出完全相同E540:~$ netstat -r Kernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface default _gateway 0.0.0.0 UG 0 0 0 wlp5s0 link-local 0.0.0.0 255.255.0.0 U 0 0 0 wlp5s0 172.17.0.0 0.0.0.0 255.255.0.0 U 0 0 0 docker0 192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 wlp5s0
重点关注的是default行对应的值,default项表示系统的默认路由,对应的网络接口为eth0
-
通过
sar –n
命令组合显示系统的网络运行状态
sar提供4种不同的选项来显示网络统计信息
通过“-n”选项可以指定4个不同类型的开关:- DEV
- EDEV
- SOCK
- FULL
E540:~$ sar -n DEV 1 Linux 5.15.0-126-generic (Edge-E540) 2024年12月08日 _x86_64_ (8 CPU) 14时54分17秒 IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s %ifutil 14时54分18秒 lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 14时54分18秒 enp4s0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 14时54分18秒 wlp5s0 2.00 0.00 0.12 0.00 0.00 0.00 0.00 0.00 14时54分18秒 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 # ------------------------------------------------------------------------------------- E540:~$ sar -n DEV 2 3 Linux 5.15.0-126-generic (Edge-E540) 2024年12月08日 _x86_64_ (8 CPU) 14时53分23秒 IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s %ifutil 14时53分25秒 lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 14时53分25秒 enp4s0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 14时53分25秒 wlp5s0 1.50 0.00 0.08 0.00 0.00 0.00 0.00 0.00 14时53分25秒 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 14时53分25秒 IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s %ifutil 14时53分27秒 lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 14时53分27秒 enp4s0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 14时53分27秒 wlp5s0 12.00 2.50 3.36 1.15 0.00 0.00 0.00 0.00 14时53分27秒 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 14时53分27秒 IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s %ifutil 14时53分29秒 lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 14时53分29秒 enp4s0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 14时53分29秒 wlp5s0 2.50 0.50 0.16 0.05 0.00 0.00 0.00 0.00 14时53分29秒 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 Average: IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s %ifutil Average: lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 Average: enp4s0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 Average: wlp5s0 5.33 1.00 1.20 0.40 0.00 0.00 0.00 0.00 Average: docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
- IFACE表示网络接口设备。
- rxpck/s表示每秒钟接收的数据包大小。
- txpck/s表示每秒钟发送的数据包大小。
- rxkB/s表示每秒钟接收的字节数。
- txkB/s表示每秒钟发送的字节数。
- rxcmp/s表示每秒钟接收的压缩数据包。
- txcmp/s表示每秒钟发送的压缩数据包。
- rxmcst/s表示每秒钟接收的多播数据包。
通过“sar –n”的输出,可以清楚地显示网络接口发送、接收数据的统计信息。此外还可以通过“sar -n EDEV 2 3”来统计网络错误信息等。
网络问题是简单而且容易处理的,一般都能迅速定位问题。解决问题的方法一般是增加网络带宽,或者优化网络部署环境。
除了上面介绍的几个命令外,排查网络问题经常用到的命令还有traceroute
(它主要用于跟踪数据包的传输路径),以及nslookup
命令(它主要用于判断DNS解析信息)