D-SMART的雷达图上看到操作系统扣分十分严重打开一看原来是网络丢包量十分严重。后来换了根网线这个问题就消失了看样子真的和网络有关。
这两天一个客户那边有几套系统我们的D-SMART总是报警网络有丢包高峰的时候会达到每秒几百个。一般情况下每秒有十个八个丢包是不会报警的不过如果比较高的时候必须做一个分析否则心里总觉得不安心。于是我们就在INTEL等朋友的帮助下边学边干工作过程中发现LINUX的网络分析武器库还是十分强大的如果我们能够用好完全是可以解决目前的大多数问题的。
linux上网络排查的武器库还是挺完备的从最简单的ifconfig到netstat(linux 7可以使用增强版的工具ss)再到网络接口工具ethtool,网络抓包工具tcpdump网络路由跟踪工具mrt等待。一般来说通过这些工具就能够抓取到我们所需要的诊断数据了。
ifconfigifconfig是最为常用的网卡诊断工具。除了可以看网卡绑定的IP地址以及状态外还可以查看报错信息。
通过errors/dropped/overruns这几个指标我们可以了解网卡的工作情况error是出现了网络错误dropped是出现了格式不正确被丢弃的包overruns 驱动缓冲不足或者网络中断处理不及时导致的缓冲溢出的数量
ethtoolethtool是网卡诊断最为重要的工具大多数的网卡上面的问题都可以通过这个工具来检查。下面一套系统的网络丢包问题比较严重通过ethtool很明显就发现了问题。
rx_errors的错误数量和rx_crc_errors的数量差不多。主要是crc导致的问题。一般crc_errors是level 1的错误和网络介质、网卡、交换机端口等物理设备有关。所以可以直接交给网络组去进一步分析了。
ethtool -k可以查看网卡上的各个开关的状态有时候调整这些开关可以起到优化的作用。
ethtool -g可以查看ring buffer的状态网络流量过大ring buffer不足会导致大量的overruns和dropped的包产生。(明天的另外一篇文章里老白会详细介绍网络诊断的一些常用流程)。
netstat -in可以大体上看到各个网卡的情况包括ERR/DRP/OVR等的计数。
通过netstat -in看RX-DRP的数量比较高而且还在不断的增长。这就说明目前网络包的dropped一直在发生。
而通过netstat -s看到的统计数据中各种错误的统计ss
Linux 7开始提供的一个socket分析工具包含绝大多数netstat的功能并能够提供更为详细的数据。socket分析的利器。