当前位置:   article > 正文

银河麒麟服务器系统中intel-x710网卡丢包问题

银河麒麟服务器系统中intel-x710网卡丢包问题

一 系统环境

[root@localhost ~]# nkvers 
############## Kylin Linux Version #################
Release:
Kylin Linux Advanced Server release V10 (Sword)

Kernel:
4.19.90-24.4.v2101.ky10.x86_64

Build:
Kylin Linux Advanced Server
release V10 (SP2) /(Sword)-x86_64-Build09/20210524
#################################################

服务器的网卡型号:INTEL X710
网卡使用的驱动版本:操作系统自带2.3.2-k
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

二 问题描述

问题现象一:生产环境的物理服务器开机运行一段时间后,系统下执行命令netstat -in出现bond1的 RX-DRP数值不断升高,担心对业务有影响。目前现场人员已经更换网卡和升级网卡驱动以后依然存在该情况。

问题现象二:网卡intel x710收包丢包,发包正常。博通网卡正常。

三 问题分析过程

3.1 查看网卡配置文件
# cat ifcfg-bond1
DEVICE=bond1
BOOTPROTO=none
ONBOOT=yes
IPV6INIT=no
TYPE=Ethernet
PEERDNS=yes
USERCTL=n0
IPADDR=xxx.xxx.xxx.xxx
NETMASK=255.255.255.0
GATEWAY=xxx.xxx.xxx.xxx
BONDING_OPTS="mode=1 miimon=100"

# cat ifcfg-p2p1
DEVICE=p2p1
BOOTPROTO=none
MASTER=bond0
SLAVE=yes
ONBOOT=yes
IPV6INIT=no
TYPE=Ethernet
PEERDNS=yes
USERCTL=no

# cat ifcfg-p3p1
DEVICE=p3p1
BOOTPROTO=none
MASTER=bond1
SLAVE=yes
ONBOOT=yes
IPV6INIT=no
TYPE=Ethernet
PEERDNS=yes
USERCTL=no
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
3.2 netstat -ni查看丢包和重传

netstat -ni 查看现场问题机器,RX-DRP的数值方面,有一组网卡值为非0,存在丢包的现象
正常如下:

[root@localhost ~]# netstat -ni
Kernel Interface table
Iface             MTU    RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flg
ens33            1500     1465      0      0 0          1110      0      0      0 BMRU
lo              65536   212363      0      0 0        212363      0      0      0 LRU
  • 1
  • 2
  • 3
  • 4
  • 5
3.3 使用ethtool -S {网卡名}查看drop

使用ethtool -S {网卡名},查看rx_dropped的数量

3.4 使用sar -n DEV查看丢包情况

查看rxdrop/s值是否为0,如果为0表示无丢包,如果非0表述存在丢包。

3.5 使用sar -n ETCP 1查看重传情况

查看retrans/s数值是否为0,如果为0表示无重传,如果非0表示存在重传。

3.6 查看/proc/net/snmp中,tcp和udp的重传情况
[root@localhost ~]# cat /proc/net/snmp
Ip: Forwarding DefaultTTL InReceives InHdrErrors InAddrErrors ForwDatagrams InUnknownProtos InDiscards InDelivers OutRequests OutDiscards OutNoRoutes ReasmTimeout ReasmReqds ReasmOKs ReasmFails FragOKs FragFails FragCreates
Ip: 2 64 225567 0 3 0 0 0 225460 224834 12 0 0 0 0 0 0 0 0
Icmp: InMsgs InErrors InCsumErrors InDestUnreachs InTimeExcds InParmProbs InSrcQuenchs InRedirects InEchos InEchoReps InTimestamps InTimestampReps InAddrMasks InAddrMaskReps OutMsgs OutErrors OutDestUnreachs OutTimeExcds OutParmProbs OutSrcQuenchs OutRedirects OutEchos OutEchoReps OutTimestamps OutTimestampReps OutAddrMasks OutAddrMaskReps
Icmp: 19 0 0 18 0 0 0 0 1 0 0 0 0 0 61 0 60 0 0 0 0 0 1 0 0 0 0
IcmpMsg: InType3 InType8 OutType0 OutType3
IcmpMsg: 18 1 1 60
Tcp: RtoAlgorithm RtoMin RtoMax MaxConn ActiveOpens PassiveOpens AttemptFails EstabResets CurrEstab InSegs OutSegs RetransSegs InErrs OutRsts InCsumErrors
Tcp: 1 200 120000 -1 6152 4149 1995 2952 33 229308 228559 0 0 3893 0
Udp: InDatagrams NoPorts InErrors OutDatagrams RcvbufErrors SndbufErrors InCsumErrors IgnoredMulti
Udp: 100 19 0 196 0 4 0 0
UdpLite: InDatagrams NoPorts InErrors OutDatagrams RcvbufErrors SndbufErrors InCsumErrors IgnoredMulti
UdpLite: 0 0 0 0 0 0 0 0
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
3.7 查看查看/proc/net/udp中,udp的丢包情况
[root@localhost ~]# cat /proc/net/udp
  sl  local_address rem_address   st tx_queue rx_queue tr tm->when retrnsmt   uid  timeout inode ref pointer drops             
   76: 00000000:0044 00000000:0000 07 00000000:00000000 00:00000000 00000000     0        0 126177 2 000000006a4fbf90 0        
  119: 00000000:006F 00000000:0000 07 00000000:00000000 00:00000000 00000000     0        0 24464 2 0000000026c71e42 0         
  331: 0100007F:0143 00000000:0000 07 00000000:00000000 00:00000000 00000000     0        0 27170 2 00000000bbb90c01 0         
  • 1
  • 2
  • 3
  • 4
  • 5
3.8 通过tcpdump抓包进行分析
tcpdump -i 网卡名 -e|grep -v -E 'ARP|IP|802.1Q|802.1AD'
  • 1

四 解决方法

4.1 建议不要升级网卡驱动;
4.2 调整ringbuffer,lldp,tso
(1)将网卡的ringbuffer调大
ethtool -G {网卡名} tx 4096 rx 4096

(2)关闭 lldp
ethtool --set-priv-flags {网卡名} disable-fw-lldp on

(3)关闭tso
ethtool -K {网卡名} tso off

#一般都是一块网卡两个网口,所以两个网口的设备都要改,例如p2p1,p3p1
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

LLDP (Link Layer Discovery Protocol,链路层发现协议)提供了一种标准的链路层发现方式,可以将本端设备的的主要能力、管理地址、设备标识、接口标识等信息组织成不同的TLV(Type/Length/alue),并封装在LLDPDU(Link Layer Discovery Protocol
Data Unit,链路层发现协议数据单元)中发布给与自己直连的邻居,邻居收到这些信息后将其以标准MIB(ManagementInformation Base,管理信息库)的形式保存起来,以供网络管理系统查询及判断链路的通信状况。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/303283
推荐阅读
相关标签
  

闽ICP备14008679号