【问题实操】银河高级服务器操作系统实例分享,网卡drop问题分析

1.服务器环境以及配置

系统环境

物理机/虚拟机/云/容器

物理机

网络环境

外网/私有网络/无网络

私有网络

硬件环境

机型

华鲲振宇 TG225B1

处理器

kunpeng 920

内存

1024GB

主板型号

TG225B1 HZKY

整机类型/架构

aarch64

固件版本

6.57

软件环境

具体操作系统版本

Kylin-server-release-v10SP2-aarch64-Bui1d09/20210524

内核版本

4.19.90-24.4.v2101.ky10.aarch64

第三方软件

有/无

如有已安装的第三方软件,列出具体名称、版本号

oceanbase 3.2.3版本

2.问题现象描述

  • 问题1

发生时间:

2023/8/23

问题描述:

18台用于数据库的机器(华为鲲鹏服务器+系统kylin-v10-sp2-0524)存在以下现象:
网卡做bond(mode4),一段时间后ifconfig查看bond信息,dropped在持续增加计数,网络通讯正常,ping不丢包,搭载的业务运行正常。客户侧网络人员已检查交换机配置,硬件厂商已检查硬件驱动正常。

问题截图

网卡参数截图

3.问题分析

3.1. 前期分析排查

根据问题现象,前期我们做了以下测试步骤:

1、在问题机器上使用ping测试,测试结果为ping包不丢包。且客户表示虽然drop在不断增加,但业务并未受到影响

2、调大网卡ringbuffer为tx 4096 rx4096,但没有效果。

3、使用tcpdump尝试收集异常数据,但开启tcpdump后网卡drop数目不再频繁增长了。

根据以上测试信息,我们发现虽然网卡不断有drop查看,但并未影响服务器正常运行;且当使用tcpdump收集数据时,网卡会自动打开混杂模式,该模式下网卡drop不断增长的现象不再出现。

我们再继续查看/proc/net/dev文件,发现出现大量drop的网卡仅表现为drop数目较高,却无fifo、errs、frame,这也说明当前drop的数据包应该不是触发了驱动检测异常、FIFO缓冲区错误、分组帧错误。由此可以推断:网卡已经把数据完整交给了操作系统,其本身并没有丢包,真正丢包的是操作系统。

结合以上现象,我们初步推测当前服务器网卡drop不断增加应该不是触发了某种异常错误,而是由于网络中存在不支持的网络协议包、未知的多播包、异常的VLAN标记包等原因。

3.2.使用dropwatch查看drop具体位置

为了确定网卡drop出现的具体位置,我们使用dropwatch监控 kfree_skb 的调用。

对比drop数量上升时的对应函数输出,我们初步定位到发生drop的位于__netif_receive_skb_core 函数。

查看Linux内核源码中__netif_receive_skb_core 函数的定义来确认一下丢包原因。

从源码中我们可以看到,当pfmemalloc 为真,且 skb_pfmemalloc_protocol 中判断不支持包协议的时候,就会跳转到label

drop处理,从而触发kfree_skb调用,产生丢包。

继续查看skb_pfmemalloc_protocol 支持的网络网络协议包,我们可以看到其只支持ETH_P_ARP、ETH_P_IP、ETH_P_IPV6、ETH_P_8021Q、ETH_P_8021AD这几种网络协议。

3.3 使用systemtap捕捉被丢弃的数据包协议号

为了确认drop包的对应网络协议号,我们使用systemtap进行相应捕获,对应stap脚本内容如下。

使用stap运行该脚本,对比网卡drop出现的时机,我们发现drop的包其网络协议均为0X88CC。

在网络上查找该协议号相关信息,发现0X88CC为LLDP报文的网络协议号,多为路由器、交换机等设备发出。

继续使用tcpdump捕获非skb_pfmemalloc_protocol 函数支持的网络协议包,发现网络中确实存在0X88CC这一LLDP报文协议的数据包,且从名字来看大概率为交换机发出的包。

 

4.问题分析结果

结合以上分析排查,我们可以确定当前服务器网卡drop不断增加不是触发了某种异常错误,而是由于网络中存在0X88CC这一不支持的网络协议包。

当网卡接收到该协议的数据包时并未产生fifo、errs、frame等错误,而是交由操作系统内核判断,在skb_pfmemalloc_protocol 函数处理中被丢弃。

继续查看0X88CC这一协议号对应的数据包类型,发现其为LLDP报文的网络协议号,多为路由器、交换机等设备发出。tcpdump的抓包也确认了网络环境中确实存在LLDP报文数据。

当前和客户方面交流,该LLDP包大概率为交换机发出,非业务相关,因此虽然有网卡drop产生但并不会导致业务异常。后续可以根据tcpdump抓包的相应信息,让对应网络部门进行排查,确定为路由器、交换机等发出的LLDP包且非业务相关即可忽略网卡drop现象。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/627206.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

基于梯度流的扩散映射卡尔曼滤波算法的信号预处理matlab仿真

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.本算法原理 4.1 扩散映射(Diffusion Maps) 4.2 卡尔曼滤波 4.3 基于梯度流的扩散映射卡尔曼滤波(GFDMKF) 5.完整程序 1.程序功能描述 基于梯度流的扩散…

Golang | Leetcode Golang题解之第89题格雷编码

题目&#xff1a; 题解&#xff1a; func grayCode(n int) []int {ans : make([]int, 1<<n)for i : range ans {ans[i] i>>1 ^ i}return ans }

vue3使用el-radio-group获取表格数据无法选中问题

这里是引用 今天写项目发现使用el-radio-group无法获取表格中的数据&#xff0c;于是去官网查看了一下&#xff0c;发现写的没啥问题&#xff0c;就是 <el-radio value"1" size"large"> 未知</el-radio>这样的写法&#xff0c;又在网上看了一些…

RGMII基于V2.0规范解读

一、说明 RGMII&#xff08;Reduced Gigabit Media Independent Interface&#xff09;是Reduced GMII&#xff08;吉比特介质独立接口&#xff09;&#xff0c;旨在替代IEEE802.3u MII、IEEE802.3z GMII和TBI。主要目标是将MAC和PHY互连所需的引脚数量从最大28个引脚&#xf…

求正方形阴影部分面积

正方形边长6&#xff0c;求阴影部分面积 xy6① vw6② 1/26v1/23x1/263③ 1/26v1/26y1/266④ ③是左下角三角形的面积&#xff0c;④是左上角三角形的面积。 求解方程组得到x2 阴影部分面积1/2*3x3.

第2章Spring Boot实践,开发社区登录模块【仿牛客网社区论坛项目】

第2章Spring Boot实践&#xff0c;开发社区登录模块【仿牛客网社区论坛项目】 前言推荐项目总结第2章Spring Boot实践&#xff0c;开发社区登录模块1.发送邮件配置MailClient测试 2.开发注册功能访问注册页面提交注册数据激活注册账号 3.会话管理体验cookie体验session 4.生成验…

idea使用gitee基本操作流程

1.首先&#xff0c;每次要写代码前&#xff0c;先切换到自己负责的分支 点击签出。 然后拉取一次远程master分支&#xff0c;保证得到的是最新的代码。 写完代码后&#xff0c;在左侧栏有提交按钮。 点击后&#xff0c;选择更新的文件&#xff0c;输入描述内容&#xff08;必填…

数据结构--链表的基本操作

1. 链表的概念及结构 概念&#xff1a;链表是⼀种物理存储结构上⾮连续、⾮顺序的存储结构&#xff0c;数据元素的逻辑顺序是通过链表 中的指针链接次序实现的 。 链表也是线性表的一种。 链表的结构跟⽕⻋⻋厢相似&#xff0c;淡季时⻋次的⻋厢会相应减少&#xff0c;旺季时…

Java(四)---方法的使用

文章目录 前言1.方法的概念和使用2.方法的定义3.实参和形参的关系4.方法重载4.1.改进4.2.注意事项 5.递归5.1 生活中的故事5.2 递归的概念 5.3.练习 前言 前面一章我们学习到了程序逻辑语句&#xff0c;在写代码的过程中&#xff0c;我们会遇到需要重复使用的代码块&#xff0…

运维别卷系列 - 云原生监控平台 之 05.prometheus alertManager 实践

文章目录 [toc]Alertmanager 简介Alertmanager 实现的核心概念GroupingInhibitionSilencesClient behaviorHigh Availability Alertmanager 配置文件globaltemplatesrouteinhibit_rulesreceivers Alertmanager 部署创建 cm创建 svc创建 stsPrometheus 配置告警Prometheus 配置文…

React Native 开发心得分享

有一段时间没更新了&#xff0c;花了点时间研究了下 React Native&#xff08;后续用 RN 简称&#xff09;&#xff0c;同时也用该技术作为我的毕设项目(一个校园社交应用&#xff0c;仿小红书)&#xff0c;经过了这段时间的疯狂折腾&#xff0c;对 RN 生态有了一定的了解&…

3.TCP的三次握手和四次挥手

一、前置知识 TCP是一种面向连接的、可靠的、基于字节流的传输层通信协议。在传输数据前通信双方必须建立连接&#xff08;所谓连接&#xff0c;是指客户端和服务端各自保存一份关于对方的信息&#xff0c;比如ip地址&#xff0c;端口号等&#xff09;。TCP通过三次握手建立一个…

iOS 创建pch文件

1.参考链接&#xff08;xcode8添加方法&#xff0c;之前的跟这个差不多&#xff09;&#xff1a; 参考链接 2.自我总结&#xff1a; &#xff08;1&#xff09;创建pch文件: 注意点&#xff1a;1&#xff09;注意选中所有的targets&#xff08;看图明义&#xff09; 2&…

风电功率预测 | 基于CNN卷积神经网络的风电功率预测(附matlab完整源码)

风电功率预测 风电功率预测完整代码风电功率预测 基于卷积神经网络(Convolutional Neural Network, CNN)的风电功率预测可以通过以下步骤实现: 数据准备:收集与风电场发电功率相关的数据,包括风速、风向、温度、湿度等气象数据以及风电场的历史功率数据。 数据预处理:对…

ACM8628 2×41W立体声1×82W单通道数字功放中文寄存器表

ACM8628M是一款国产高度集成、高效率的双通道数字输入功放。供电电压范围在4.5V-26.4V,数字接口电源支持3.3V或1.8V。在8欧负载下&#xff0c;输出功率可以到241W&#xff0c;PBTL模式下单通道可以输出182W1% THDN. 器件介绍见 内置DSP多种音频处理效果ACM8628M-241W立体声…

「51媒体」家居生活发布会,展览展会有哪些媒体邀约资源

传媒如春雨&#xff0c;润物细无声&#xff0c;大家好&#xff0c;我是51媒体网胡老师。 家居生活类媒体包括多种类型&#xff0c;包括门户网站家居生活消费频道&#xff0c;专业的家居消费生活门户&#xff0c;以及行业媒体&#xff0c;平面媒体&#xff0c;KOL和意见领袖。下…

高通Android 11/12/13 通过包名设置默认launcher

背景&#xff1a;最近在封装供第三应用系统SDK 接口&#xff0c;遇到一个无法通过包名设置主launcher代码坑所以记录下。 涉及类roles.xml # <!---~ see com.android.settings.applications.defaultapps.DefaultHomePreferenceController~ see com.android.settings.appl…

Git 基础使用(2) 分支管理

文章目录 分支概念分支使用查看分支分支创建分支切换分支合并合并冲突分支删除 分支管理快进模式分支策略内容保存错误处理 分支概念 &#xff08;1&#xff09;分支概念 Git分支是指在版本控制系统Git中&#xff0c;用来表示项目的不同工作流程或开发路径的一个重要概念。通过…

海豚调度器如何看工作流是在哪个worker节点执行

用海豚调度器&#xff0c;执行一个工作流时&#xff0c;有时成功&#xff0c;有时失败&#xff0c;怀疑跟worker节点环境配置不一样有关。要怎样看是在哪个worker节点执行&#xff0c;在 海豚调度器 Web UI 中&#xff0c;您可以查看任务实例&#xff0c;里面有一列显示host&a…

从零开始详解OpenCV条形码区域分割

前言 在识别二维码之前&#xff0c;首先要划分出二维码的区域&#xff0c;在本篇文章中将从零开始实现二维码分割的功能&#xff0c;并详细介绍用到的方法。 我们需要处理的图像如下&#xff1a; 完整代码 首先我们先放出完整代码&#xff0c;然后根据整个分割流程介绍用到…