公司最近有台服务器,用 tcpdump 捉包的时候,经常丢包,提示是 drop by kernel 和 drop by interface , ifconfig 查看的时候, 发现后面 drop 的包占了前面 RX 的包 将近 1/3 , 有人知道是怎么回事么,目前初步怀疑是不是网卡驱动问题,正打算更新网卡驱动,请 V 友给点意见! 谢谢
1
yuedingwangji OP 有人告诉我怎么发图么?
|
2
djJleAo 2016-05-25 17:55:44 +08:00
1 、我想你是指 Intel 的 10G 卡, ixbge 吧?
2 、网卡 drop 包有很多原因,其中 1 种是,网卡缓冲区(king buffer)溢出 3 、尝试调大队列,/proc/sys/net/core/netdev_max_backlog |
3
wenhaoy 2016-05-25 18:36:01 +08:00 via Android
原生的 tcpdump 性能不好,流量大了就丢包。可以试试 pf_ring
|
4
yuedingwangji OP @wenhaoy 我感觉也是这个问题, 那个网卡 30s 就能达到 40 多 G
|
5
yuedingwangji OP @wenhaoy 但是 ifconfig 查看的时候,为什么也会丢跑呢
|
6
yuedingwangji OP @djJleAo 有没有可能是驱动问题? 网卡缓冲区溢出,怎么查看呢? 还有队列该调为多少呢
|
7
tempdban 2016-05-26 04:33:37 +08:00 via Android
1.ixbge
2.drop by kernel 指的是被 tcpdump kernel (libpcap) 丢弃的包。 |
8
redsonic 2016-05-26 09:13:24 +08:00
和网卡驱动应该没有什么关系。 LZ 列一下 cpu 型号以及 ethtool -S ethX 。万兆卡对平台有要求。
|
9
djJleAo 2016-05-26 09:26:38 +08:00
@yuedingwangji
1 、驱动是可能的因素之一, kernel 编译时, ixgbe 的驱动版本是较早的了。上 intel 官网,下载编译最新驱动。 2 、 google droped 和 overruns 的区别。 3 、理论上没有固定值,如果是这个队列问题,调大到不 drop 包为止。 |