ifconfig 查看网络丢包

本文源自于

使用iperf进行网卡丢包测试 - 可惜流年 - 博客园

一台机器经常收到丢包的报警,先看看最底层的有没有问题:

1

2

3

4

5

6

# ethtool  em2 | egrep 'Speed|Duplex'

        Speed: 1000Mb/s

        Duplex: Full

# ethtool  -S em2 | grep crc

     rx_crc_errors: 0

Speed, Duplex, CRC 之类的都没问题,基本可以排除物理层面的干扰。

通过 ifconfig 可以看到 overruns 字段在不停的增大:

1

# for i in `seq 1 10`; do ifconfig em2 | grep RX | grep overruns; sleep 1; done

dropped 出现问题的倒是遇到过几次,overruns 的倒是第一次遇到,再看看下面这个:

1

2

3

4

5

6

7

8

9

10

11

# ethtool  -S em2 | grep drop

     dropped_smbus: 0

     tx_dropped: 0

     rx_queue_0_drops: 26649441

     rx_queue_1_drops: 26096911

     rx_queue_2_drops: 22712954

     rx_queue_3_drops: 16581572

     rx_queue_4_drops: 27349880

     rx_queue_5_drops: 6178622

     rx_queue_6_drops: 19882243

     rx_queue_7_drops: 18802558

发现数值也在不停的增加。Google了一下,发现这些 errors, dropped, overruns 表示的含义还不大一样。根据这篇文档的解释:

1

2

3

4

5

6

7

8

9

# ifconfig em2

em2       Link encap:Ethernet  HWaddr AC:85:3D:A9:03:0D  

          inet addr:211.211.211.211  Bcast:211.211.211.255  Mask:255.255.255.0

          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

          RX packets:17141208886 errors:0 dropped:0 overruns:164254181 frame:0

          TX packets:14685534428 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:1000

          RX bytes:2619578349554 (2.3 TiB)  TX bytes:1479317006067 (1.3 TiB)

          Memory:94b00000-94b20000

  • RX errors: 表示总的收包的错误数量,这包括 too-long-frames 错误,Ring Buffer 溢出错误,crc 校验错误,帧同步错误,fifo overruns 以及 missed pkg 等等。
  • RX dropped: 表示数据包已经进入了 Ring Buffer,但是由于内存不够等系统原因,导致在拷贝到内存的过程中被丢弃。
  • RX overruns: 表示了 fifo 的 overruns,这是由于 Ring Buffer(aka Driver Queue) 传输的 IO 大于 kernel 能够处理的 IO 导致的,而 Ring Buffer 则是指在发起 IRQ 请求之前的那块 buffer。很明显,overruns 的增大意味着数据包没到 Ring Buffer 就被网卡物理层给丢弃了,而 CPU 无法即使的处理中断是造成 Ring Buffer 满的原因之一,上面那台有问题的机器就是因为 interruprs 分布的不均匀(都压在 core0),没有做 affinity 而造成的丢包。
  • RX frame: 表示 misaligned 的 frames。

对于 TX 的来说,出现上述 counter 增大的原因主要包括 aborted transmission, errors due to carrirer, fifo error, heartbeat erros 以及 windown error,而 collisions 则表示由于 CSMA/CD 造成的传输中断。

在梳理这些 error/drop/discard 的时候,由于涉及到不同的 NIC 型号,ethtool/netstat 或者是直接从 proc 里面获取到的数据所代表的意思还不完全一样,比如上面通过 ethtool 得到的「丢包」是通过 rx_queue_NUM_drops 这个字段表示的,而通过 netstat 看到的却是 RX-OVR 表示的,一个是 overruns 一个是 dropped,字面意思完全不同:

1

2

3

4

# netstat -i | column  -t

Kernel  Interface  table

Iface   MTU        Met    RX-OK        RX-ERR  RX-DRP  RX-OVR     TX-OK        TX-ERR  TX-DRP  TX-OVR  Flg

em2     1500       0      17159519100  0       0       164254181  14701510290  0       0       0       BMRU

不管是使用何种工具,最终的数据无外乎是从下面这两个文件获取到的:

  1. /sys/class/net/em2/statistics/
  2. /proc/net/dev

1

2

3

4

# cat /proc/net/dev | column  -t

Inter-|            Receive      |        Transmit

face               |bytes       packets  errs      drop       fifo  frame  compressed  multicast|bytes  packets      errs  drop  fifo  colls  carrier  compressed

em2:2621515020998  17153788154  0        0         164254181  0     0      0           1480433225509    14696703883  0     0     0     0      0        0

对于上面出现的若干种问题,一方面是做好监控,另外一方面是出现问题的时候及时的想到各种的可能,无外乎那么几种。Google 过程中发现了 stackexchange 上还没人回答的问题,结合上面的,我顺便回答了一下,基本,遵循里面的四点,95% 以上的场景应该能轻松应对。

  • http://serverfault.com/questions/561107/how-to-find-out-the-reasons-why-the-network-interface-is-dropping-packets
  • http://serverfault.com/questions/448768/cat-proc-net-dev-and-ip-s-link-show-different-statistics-which-one-is-lyi
  • http://www.linuxjournal.com/content/queueing-linux-network-stack

ifconfig查看网络丢包相关推荐

  1. [linux] 查看网络丢包信息

    mtr yourdomain windows下可以 试试 tracert yourdomain

  2. 计算机如何查看网络延时,电脑上怎么看网络丢包?网络延时查看方法

    上网经常卡,玩网络游戏跳ping,延迟400ms很可能是你家的网络问题.那么,电脑上怎么看网络丢包?今天电脑百事网小编就来教大家如何查看自家的网络延时问题.对于一些网络游戏来说,对网速与稳定性要求很高 ...

  3. 检测网络是否稳定的计算机命令,怎么看电脑上网络丢包 查看网速有没稳定和网络是否延时方法...

    上网经常卡,玩网络游戏跳ping,延迟400ms很可能是你家的网络问题.那么,电脑上怎么看网络丢包?今天小编就来教大家如何查看自家的网络延时问题.对于一些网络游戏来说,对网速与稳定性要求很高,而一旦网 ...

  4. 云网络丢包故障定位全景指南

    作者简介:冯荣,腾讯云网络高级工程师,腾讯云网络核心开发人员. 万字长文  建议收藏 引言 本期分享一个比较常见的⽹络问题--丢包.例如我们去ping⼀个⽹站,如果能ping通,且⽹站返回信息全⾯,则 ...

  5. 深度好文:云网络丢包故障定位,看这一篇就够了~

    深度好文:云网络丢包故障定位,看这一篇就够了~ https://mp.weixin.qq.com/s/-Q1AkxUr9xzGKwUMV-FQhQ Alex 高效运维 今天 来源:本文经授权转自公众号 ...

  6. Linux下网络丢包故障定位

    Linux下网络丢包故障定位 | syxdevcode博客转载: 云网络丢包故障定位全景指南 硬件网卡丢包Ring Buffer溢出 如图所示,物理介质上的数据帧到达后首先由NIC(网络适配器)读取, ...

  7. 网络编程之网络丢包故障如何定位?如何解决?

    引言 本期分享一个比较常见的网络问题--丢包.例如我们去ping一个网站,如果能ping通,且网站返回信息全面,则说明与网站服务器的通信是畅通的,如果ping不通,或者网站返回的信息不全等,则很可能是 ...

  8. 如何处理网络丢包故障?—Vecloud微云

    我们在使用ping命令对目的站进行询问时,数据包由于各种原因在信道中丢失的现象,就是网络丢包.网络丢包是网络中常见的故障之一,它会引起网速降低甚至造成网络中断. 以下是几种常见的网络丢包故障现象及处理 ...

  9. 看我如何作死 | 网络延迟、网络丢包、网络中断一个都没落下过

    点击上方"朱小厮的博客",选择"设为星标" 回复"1024"获取独家整理的学习资料 欢迎跳转到本文的原文链接:https://honeypp ...

最新文章

  1. 一个爬虫的故事:爬虫兄弟要活不下去了!!!
  2. java常量信用_JAVA常量
  3. 《Python游戏编程快速上手》第五章--龙穴探险
  4. Android应用开发实例篇(1)-----简易涂鸦板
  5. Bottlerocket:一套专用型容器操作系统
  6. 正则表达式和Java编程语言1zz
  7. bzoj4552[HEOI2016/TJOI2016]排序(二分+线段树)
  8. adobe黑体std能商用_adobe字体版权?
  9. 搭建基于XMPP的即时通讯系统
  10. COLORMAP_JET的颜色规律
  11. Latex制作三线表 Latex制作复杂表格 加彩色边框高亮显示
  12. 【Unity】优化工具Profiler
  13. WinRAR压缩软件去除广告
  14. 汇编语言L0C,单片机汇编语言指令查表.doc
  15. 孙溟㠭(展)为秘鲁总统夫人‘埃莲娜卡尔普托莱多’女士治名章篆刻印章
  16. Todesk远程连接时一直显示密码错误
  17. Revit快速标注 | 有求必应的【万能标注】操作步骤
  18. 【STM32H7教程】第7章 STM32H7下载和调试方法(IAR8)
  19. 【syslog】搭建日志服务器
  20. 【产品经理】手绘风格在网页设计中的运用

热门文章

  1. vue脚手架引入bootstrap3
  2. UserWarning: Possibly corrupt EXIF data.
  3. 论文笔记:Bootstrap Your Own Latent A New Approach to Self-Supervised Learning
  4. golang ODBC 访问access数据库
  5. 计算机桌面图片唐诗,自动唐诗宋词桌面壁纸
  6. python做值班表预测_Django model一张表中两个字段设置外键参考另一张表两个字段...
  7. 如何实现“轻高精地图”的城市NOH?毫末自动驾驶的8大亮点
  8. Typecho主题Brave—勇敢爱
  9. 什么是XGBoost
  10. 【zabbix监控三】zabbix之部署代理服务器