当前位置: 首页 > article >正文

【银河麒麟高级服务器操作系统】业务访问慢网卡丢包现象分析及处理过程

了解更多银河麒麟操作系统全新产品,请点击访问

麒麟软件产品专区:product.kylinos.cn

开发者专区:developer.kylinos.cn

文档中心:document.kylinos.cn

交流论坛:forum.kylinos.cn


服务器环境以及配置

【内核版本】

4.19.90-25.22.v2101.ky10.x86_64

【OS镜像版本】

银河麒麟高级服务器操作系统

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

现象描述

服务器业务访问很慢,可能存在网卡丢包,交换机侧有收到反压帧(有反压帧,说明服务器网卡的接收缓存区可能满了)。

网卡品牌是:Mellanox,有多个优先级缓存区(8个,优先级0-7)。目前通过ethtool -S查看,发现rx_prio0_buf_discard值很大,不为0。但是rx_out_of_buffer为0。

关于迈络思网卡有几个问题:

  1. 数据包到服务器网卡,到底走哪个优先级缓存区(因为有8个,走哪个缓存区是网卡判定的还是操作系统判定的,还是说交换机上面控制的)?
  2. 如果某个优先级的缓存区满了,继续有包过来是不是会丢弃,还是说等待排队,如果这个优先级的缓存区没有开启PFC功能,是不是数据包就会丢弃?
  3. 迈洛思网卡是不是可以调整各个优先级的缓存区大小(通过命令mlnx_qos -i 网卡名 --buffer_size),这个调整是不是调整的网卡的硬件缓存区大小?

现象分析

现象1分析

数据包到服务器网卡,走哪个优先级缓存区,由报文DSCP和网卡配置决定。

通过mlnx_qos工具将不同DSCP绑定到不同优先级缓存区,以设置具备不同DSCP的报文走哪个优先级缓存区。

DSCP(Differentiated Services Code Point,差分服务代码点)是一种用于网络报文优先级分类的标记,使用每个数据包IP头部的TOS字段进行标识,通过不同的编码值来区分不同优先级。

用户可以将不同DSCP绑定到网卡不同的接收缓冲区。网卡收到某个报文后从IP头部读取DSCP值,根据DSCP值和网卡配置规则,确定该报文进入哪个硬件缓存区。

现象2分析

如果某个优先级的缓存区满了,后续包的处理逻辑受PFC(优先级流量控制)功能影响

  1. 若开启了PFC功能,处理过程如下:

接收该报文,并向对端发送PFC PAUSE帧,通知对端设备暂时停止发送该类报文;对端设备在接收到PFC PAUSE帧后,将暂时停止向本端发送该类报文;当拥塞仍然存在时,此过程将重复进行,直至拥塞解除。

需要注意,必须保证本端和对端的PFC功能都处于开启状态,PFC功能才能生效。PFC中流量暂停只针对某一个或几个优先级队列,不针对整个接口进行中断,每个队列都能单独进行暂停或重启,而不影响其他队列上的流量。

  1. 若没有开启PFC功能,处理过程如下:

系统不进行反压处理,即在发生拥塞时直接丢弃报文。

现象3分析

迈洛思网卡可以调整缓存区大小。

通过迈络思官方文档,可以查到通过命令“mlnx_qos -i 网卡名 --buffer_size sizelist”来设置接收缓冲区大小,如下说明:

图2 迈络思参数说明

官方文档链接:

https://enterprise-support.nvidia.com/s/article/mlnx-qos


http://www.kler.cn/a/512311.html

相关文章:

  • 力扣11-最后一个单词的长度
  • 3D 模型格式转换之 STP 转 STL 深度解析
  • 大数据,Hadoop,HDFS的简单介绍
  • AI发展困境:技术路径与实践约束的博弈
  • 浅谈计算机网络03 | 现代网络组成
  • 【useCallback Hook】在多次渲染中缓存组件中的函数,避免重复创建函数
  • Python----Python高级(文件操作open,os模块对于文件操作)
  • LLM大语言模型的分类
  • 通信协议—WebSocket
  • 电子应用设计方案97:智能AI投影仪系统设计
  • uniapp时间组件
  • 回归算法、聚类算法、决策树、随机森林、神经网络
  • Kafka面试题----Kafka都有哪些特点
  • Lightning初探
  • Go channel关闭方法
  • JAVA-IO模型的理解(BIO、NIO)
  • 在VSCode中使用Jupyter Notebook
  • Centos 8 交换空间管理
  • LeetCodeHOT100:60. n个骰子的点数、4. 寻找两个正序数组的中位数
  • 以“智慧建造”为理念,综合应用云、大、物、移、智等数字化技术的智慧工地云平台源码
  • 愿景是什么?
  • JSON-stringify和parse
  • 48V电气架构全面科普和解析:下一代智能电动汽车核心驱动
  • Android 空包签名(详细版)
  • AI刷题-病毒在封闭空间中的传播时间
  • 企业级流程架构设计思路-基于价值链的流程架构