深圳微网站开发,做网站网站判刑,小米官方网站开发版,唐山网站建设策划本文是性能问题分析排查思路的展开内容之一#xff0c;第2篇#xff0c;主要分为日志1期#xff0c;机器4期、环境2期共7篇系列文章#xff0c;本期是第三篇#xff0c;讲机器#xff08;硬件#xff09;的网络方面的排查方法和最佳实践。
主要内容如图所示#xff1a…本文是性能问题分析排查思路的展开内容之一第2篇主要分为日志1期机器4期、环境2期共7篇系列文章本期是第三篇讲机器硬件的网络方面的排查方法和最佳实践。
主要内容如图所示 本文内容主要涉及一个网络本命工具netstat、网络的延迟、抖动和丢包率查看、流量与网络带宽上限查询、链路分析、TCP连接数检测和与网络相关的常见异常通过这些工具和方法可了解网络的主要指标表现。
本命工具netstat
Netstat是一个控制台命令用于显示与IP、TCP、UDP和ICMP协议相关的统计数据它是一个强大的网络工具可帮助用户监视网络活动、查找与网络相关的问题并提供有关网络连接的详细信息。 Netstat命令提供了多种选项以便用户根据需要定制输出信息功能很多本文不展开全部细节只是介绍一下有这样的一个命令行工具具体的语法随时搜索即可。
问题一查看某个端口是否处于监听状态 命令netstat -nalp | grep 端口号 问题二按连接状态分类并统计某个进程占了多少tcp连接
命令是netstat -anp | grep 12345 | awk /^tcp/ {print $6} | uniq -c 这个对于排查连接数过多不释放或者半连接问题非常有效 如图所示这个进程建立了了3000多个网络连接最后排查出该进程存在连接未释放的Bug这就是一个直接证据 问题三按照PID进行分类统计并取前10位。
命令是:
netstat -anp | awk /^tcp/ {print $7} | cut -d/ -f1 | sort | uniq -c | sort -nr | head
结果如图所示 图中第一列是连接数第二列是进程的PID从这个统计可以直观看出一些异常进程没错就是排名第一那个 以上用法抛砖引玉。
网络延迟与抖动
ping是一个大家所熟知的命令虽然普通但是它也足够强大。 图中首先可以看到网络是否联通。其次可以直观看出现在的延迟例如上图都是20多毫秒这个延迟已经很高了。数据中心内部一般不到1毫秒我这里是ping的一个外部网络。 再然后通过最后一行的统计信息可以看到网络抖动非常小只有0.321毫秒因此该网络虽然慢但慢的很稳定很均匀。 最后丢包率这里直接看到是0% packet loss你可以测试更长时间观察是否丢包。 丢包率
上面的ping命令可以查看实时的丢包情况。 而ifconfig命令可以查看历史统计,它显示的是每个网卡的信息关注每个信息块的最后两行 分别表示接收和发送的网络包数目其中包含了drop关键字也就是丢包的数量这里可看到是2010571这种就需要确认下网络是否有拥塞或其他异常。
网络流量
一般网络流量要通过监控系统的页面进行查看如果没有现成的页面监控可以看使用以下的命令查看。
网络带宽上限
使用ethtool 网卡名获取网卡名使用上面的命令可以得到 上图中的Speed就是这个网卡的理论速度上限了即千兆网卡1000Mb/s。 这里需要提醒的是千兆不是我们常说的1GBb在这里是比特不是Bytes
实时网速
这里又要用到linux神器sar命令。
sar的功能太多关于看网速的具体命令是sar -n DEV 1。 第一列是时间戳。其他主要字段解释如下
IFACE这是网络接口的名称。在这个例子中有两个接口。rxpck/s这是每秒接收的数据包数量Received Packets per Secondtxpck/s这是每秒发送的数据包数量Transmitted Packets per SecondrxkB/s这是每秒接收的千字节数Received Kilobytes per SecondtxkB/s这是每秒发送的千字节数Transmitted Kilobytes per Second
通过收发的字节数与上面的带宽对比可以看到是否达到网络瓶颈
另一个实时网速
iptraf-ng还可以监控所有出入的流量进行按照协议区分流量并设置过滤器等。它可以用于实时监视网络流量、统计网络接口的使用情况、查看网络连接等。 这是一个略漂亮点的网速查看工具如图所示 链路
tracepath是一个网络诊断工具用于追踪数据包从源主机到目标主机的路径。它通过发送一系列逐渐增加的TTLTime To Live值的ICMP回显请求报文来探测路径上的每个路由器并记录每个路由器的IP地址和响应时间。 示例输出
tracepath to www.example.com (93.184.216.34), 30 hops max, 60 byte packets
1 192.168.1.1 (1.234 ms)
2 10.0.0.1 (2.345 ms)
3 * * *
4 203.0.113.1 (123.456 ms)
5 * * * 6 93.184.216.34 (123.456 ms)其中星号表示在该跳点上没有收到回复。每行还包括该跳点的IP地址和从源主机到该跳点的往返时间以毫秒为单位。
如果发现某个跳点的响应时间特别长或没有收到回复那么可能表示该路由器存在故障或网络拥塞等问题。这对于网络故障排查和优化非常有帮助。
TCP相关
可以继续使用sar命令来观察网络的重发数、强制关闭数。另外linux的网络半连接、全连接的队列大小可以适当扩大。
常见问题 网络连接问题 报错信息Network is unreachable、Connection refused、No route to host等。现象无法ping通其他主机无法上网无法访问远程服务等。解决方法检查本地网络设置、路由器配置、防火墙设置等。 DNS解析问题 错误信息Name or service not known现象无法通过域名访问网站只能通过IP地址访问。解决方法检查/etc/resolv.conf文件中的DNS设置或者尝试更换DNS服务器。 服务端口监听问题 错误信息Connection refused现象尝试连接某个服务端口时被服务器拒绝。解决方法检查服务是否正在运行端口是否开放以及防火墙规则是否允许该连接。 网络超时 错误信息Request timed out现象网络请求长时间无响应。解决方法检查网络延迟、带宽限制、服务器负载等因素。 路由配置问题 错误信息Destination Host Unreachable现象尝试访问某个网络时提示目标主机不可达。解决方法使用route命令查看和修改路由表确保默认路由设置正确。
结语
Linux网络系统的排查工具众多每种工具都有其独特的功能和适用场景。通过结合使用这些工具和使用经验我们能够更加高效地诊断和解决网络问题。然而仅依赖工具是不够的我们还需不断学习和积累网络知识以便更好地理解和处理各种网络问题。希望本文所介绍的排查工具和使用经验能为读者在Linux网络系统维护排查中提供一些帮助。