Chinaunix首页 | 论坛 | 博客
  • 博客访问: 3785723
  • 博文数量: 880
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 6155
  • 用 户 组: 普通用户
  • 注册时间: 2016-11-11 09:12
个人简介

To be a better coder

文章分类

全部博文(880)

文章存档

2022年(5)

2021年(60)

2020年(175)

2019年(207)

2018年(210)

2017年(142)

2016年(81)

分类: LINUX

2018-06-06 18:40:56


http://blog.sina.com.cn/s/blog_91c48d8b0100vwpn.html
# 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。


在一次测试中发现:用ifconfig查看网卡信息,看到一些网卡出现overruns字段数据大于0,也就是网卡丢弃了数据包

原因:我的配置如下,一台linux设备作代理,一个网卡是外网(ethtool –g eth0:会出现rx和tx队列大小,我的都是1024),一个网卡是内网(ethtool –g eth1:会出现rx:512,tx:512)

那么当流量大的话,ifconfig eth1就会在RX一行的overruns字段出现数据大于0的情况。

 

我的猜想:应该是接受缓冲区的队列大小不一致导致,故改为一致即可

 

ethtool –G eth1 rx 1024

ethtool –G eth1 tx 1024



阅读(4313) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~