通过ethtool命令看到是rx_dropped一项有数值。

/ # ethtool -S eth0 | more
NIC statistics:rx_packets: 88037562tx_packets: 66028257rx_bytes: 7461153935tx_bytes: 5612351710rx_errors: 0tx_errors: 0rx_dropped: 372tx_dropped: 0collisions: 0rx_length_errors: 0rx_crc_errors: 0rx_unicast: 88037192tx_unicast: 66028258

查看i40e-2.11.29版本的代码,rx_dropped统计对应为rx_discards计数。

static const struct i40e_stats i40e_gstrings_stats[] = {I40E_PF_STAT("port.rx_bytes", stats.eth.rx_bytes),I40E_PF_STAT("port.tx_bytes", stats.eth.tx_bytes),...I40E_PF_STAT("port.rx_dropped", stats.eth.rx_discards),

以下函数负责更新rx_discards统计数据,可见其由x710的寄存器GLV_RDPC中获取。

void i40e_update_eth_stats(struct i40e_vsi *vsi)
{int stat_idx = le16_to_cpu(vsi->info.stat_counter_idx);struct i40e_pf *pf = vsi->back;struct i40e_hw *hw = &pf->hw;struct i40e_eth_stats *oes;struct i40e_eth_stats *es;     /* device's eth stats */es = &vsi->eth_stats;oes = &vsi->eth_stats_offsets;/* Gather up the stats that the hw collects */i40e_stat_update32(hw, I40E_GLV_TEPC(stat_idx),vsi->stat_offsets_loaded,&oes->tx_errors, &es->tx_errors);i40e_stat_update32(hw, I40E_GLV_RDPC(stat_idx),vsi->stat_offsets_loaded,&oes->rx_discards, &es->rx_discards);

根据X710的手册,此寄存器表示由于没有可用的接收描述符而导致的丢包数量。

00000000000000000000000000000000000000000000

查看以下当前网卡的描述符数量,为512个。

/ # ethtool -g eth0
Ring parameters for eth0:
Pre-set maximums:
RX:             4096
RX Mini:        0
RX Jumbo:       0
TX:             4096
Current hardware settings:
RX:             512
RX Mini:        0
RX Jumbo:       0
TX:             512

在文件i40e.h中,描述符的数量默认就是512个。

#define I40E_DEFAULT_NUM_DESCRIPTORS    512

文件i40e_ethtool.c中函数i40e_get_ringparam用于获取描述符信息。

static void i40e_get_ringparam(struct net_device *netdev, struct ethtool_ringparam *ring)
{        struct i40e_netdev_priv *np = netdev_priv(netdev);struct i40e_pf *pf = np->vsi->back;struct i40e_vsi *vsi = pf->vsi[pf->lan_vsi];ring->rx_max_pending = I40E_MAX_NUM_DESCRIPTORS;ring->tx_max_pending = I40E_MAX_NUM_DESCRIPTORS;ring->rx_mini_max_pending = 0;ring->rx_jumbo_max_pending = 0;ring->rx_pending = vsi->rx_rings[0]->count;ring->tx_pending = vsi->tx_rings[0]->count;ring->rx_mini_pending = 0;ring->rx_jumbo_pending = 0;
}

以下不修改代码中的默认值,先通过ethtool将其修改成最大的4096个。

/ # ethtool -G eth0 rx 4096
/ #
/ # ethtool -G eth0 tx 4096

经过测试丢包数量有所减少,但是感觉还是要提高报文处理性能,尽快释放占用的描述符,才能完全不丢包。

X710网卡接收丢包相关推荐

  1. Linux系统 UDP 丢包问题分析思路和修改网卡缓存

    最近工作中遇到某个服务器应用程序 UDP 丢包,在排查过程中查阅了很多资料,我在排查过程中基本都是通过使用 tcpdump 在出现问题的各个环节上进行抓包.分析在那个环节出现问题.针对性去排查解决问题 ...

  2. DHCP的工作原理 公网IP与私网IP 网络通信的流程与数据包发送 网卡的工作原理 网卡丢包问题

    网络通信的四个要素 本机的IP地址 子网掩码 网关的IP地址 DNS服务器的IP地址 获取以上配置,有两种方式 : 静态获取==>手动配置 动态获取==>dhcp自动获取 DHCP的作用 ...

  3. linux 系统 UDP 丢包问题分析思路

    转自:http://cizixs.com/2018/01/13/linux-udp-packet-drop-debug?hmsr=toutiao.io&utm_medium=toutiao.i ...

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

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

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

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

  6. UDP sendto频率过快导致发送丢包

    sendto频率过快导致发送丢包 - 逸蒙 - 博客园 编写一个转发模块,虽然没有要求一转多时要达到多少路(不采用组播的情况下,单纯的一路转成多路),但是本着物尽其用的原则,尽可能测试一下极限. 网络 ...

  7. Linux丢包问题排查思路

    Linux丢包问题排查思路 判断问题与网络丢包有关 通过抓tcpdump,通过wireshark提示查看数据包状态.比如客户端重传多次失败,服务端提示丢包等错误,均是可能由于丢包导致的异常. 丢包可能 ...

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

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

  9. Linux 丢包分析

    最近工作中遇到某个服务器应用程序 UDP 丢包,在排查过程中查阅了很多资料,总结出来这篇文章,供更多人参考. 在开始之前,我们先用一张图解释 linux 系统接收网络报文的过程. 首先网络报文通过物理 ...

最新文章

  1. StringBuider 在什么条件下、如何使用效率更高?
  2. Asp.Net 创建MetaWeblog API
  3. Android中获取资源文件的几种方法
  4. python爬取贴吧所有帖子-Python爬虫实例(一)爬取百度贴吧帖子中的图片
  5. STL 之 deque容器详解
  6. java dayofweek_Java DayOfWeek getDisplayName()用法及代碼示例
  7. 职工信息管理软件c语言大一,职工信息管理(C语言
  8. java mvc 实际分层_SpringMVC体系分层模式原理图解
  9. Firefox下代码触发a标签的click事件无效
  10. 英雄联盟祖安服务器位置,LOL“4区版英雄联盟”:城区有2个,郊区有2个,山区有1个...
  11. Enterprise Spring示例和集成测试
  12. Java实现MySQL数据库备份(二)
  13. 秋风下的萧瑟 NOIP2018 游记
  14. 迭代器模式(Iterator)和组合模式(Composite)
  15. java中级项目案例_60个Java练手项目案例,看了让你茅塞顿开~
  16. 通信协议(三)——IIC协议
  17. linux如何设置环境变量
  18. 浅谈数字后端工程师的工作
  19. LaTeX常用数学符号表示方法
  20. Verilog:【4】脉冲发生器(pulse_gen.sv)

热门文章

  1. 系统自带的最便捷的远程控制方法
  2. 又一家美业SaaS+系统宣布停止服务,美业人你怎么看?
  3. 某乎上看到的专业技术解读
  4. 大厂对学历的要求是什么?如果学历不够,拿什么来凑?
  5. android开发中磁场传感器,Android NDK中的陀螺仪和磁场传感器事件
  6. Cell:基于33个遗传多样性水稻种质泛基因组分析揭示“隐藏”的基因组变异
  7. new className() new出来的深意
  8. 世界电信日| 谈谈电信行业缘何牵线云计算?
  9. 【京东】商品评价数据采集+买家评论数据+卖家评论数据采集+行业数据分析+行业数据质检分析
  10. 微信小程序如何进行反编译详细教程