文章目录
- 概述
- 通过ping命令检测网络的连通性
- 通过“netstat –I”命令组合检测网络接口状况
- 通过“netstat –r”命令组合检测系统的路由表信息
- 通过“sar –n”命令组合显示系统的网络运行状态
- 小结
概述
网络性能的好坏直接影响应用程序对外提供服务的稳定性和可靠性。 网络性能可以从以下几个方面进行管理和优化。
通过ping命令检测网络的连通性
如果发现网络反应缓慢,或者连接中断,可以通过ping来测试网络的连通情况
time值显示了两台主机之间的网络延时情况。如果此值很大,则表示网络的延时很大,单位为毫秒。在这个输出的最后,是对上面输出信息的一个总结。packet loss表示网络的丢包率,此值越小,表示网络的质量越高。
通过“netstat –I”命令组合检测网络接口状况
netstat命令提供了网络接口的详细信息
- Iface表示网络设备的接口名称。
- 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命令的输出完全相同
[root@VM-24-3-centos ~]# netstat -r
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
default gateway 0.0.0.0 UG 0 0 0 eth0
10.0.24.0 0.0.0.0 255.255.252.0 U 0 0 0 eth0
link-local 0.0.0.0 255.255.0.0 U 0 0 0 eth0
172.17.0.0 0.0.0.0 255.255.0.0 U 0 0 0 docker0
[root@VM-24-3-centos ~]# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default gateway 0.0.0.0 UG 0 0 0 eth0
10.0.24.0 0.0.0.0 255.255.252.0 U 0 0 0 eth0
link-local 0.0.0.0 255.255.0.0 U 1002 0 0 eth0
172.17.0.0 0.0.0.0 255.255.0.0 U 0 0 0 docker0
[root@VM-24-3-centos ~]#
重点关注的是default行对应的值,default项表示系统的默认路由,对应的网络接口为eth0。
通过“sar –n”命令组合显示系统的网络运行状态
sar提供4种不同的选项来显示网络统计信息,通过“-n”选项可以指定4个不同类型的开关:DEV、EDEV、SOCK和FULL。
- DEV显示网络接口信息,
- EDEV显示关于网络错误的统计数据,
- SOCK显示套接字信息,
- FULL显示所有4个开关。
[root@VM-24-3-centos ~]# sar -n DEV 2 3
Linux 3.10.0-1160.11.1.el7.x86_64 (VM-24-3-centos) 03/06/2023 _x86_64_ (2 CPU)
08:25:27 PM IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
08:25:29 PM eth0 25.50 12.50 21.82 1.26 0.00 0.00 0.00
08:25:29 PM lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
08:25:29 PM docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00
08:25:29 PM IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
08:25:31 PM eth0 35.00 23.50 25.29 5.13 0.00 0.00 0.00
08:25:31 PM lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
08:25:31 PM docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00
08:25:31 PM IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
08:25:33 PM eth0 28.50 18.00 21.30 2.13 0.00 0.00 0.00
08:25:33 PM lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
08:25:33 PM docker0 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
Average: eth0 29.67 18.00 22.80 2.84 0.00 0.00 0.00
Average: lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
Average: docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00
[root@VM-24-3-centos ~]#
- 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解析信息)