【问题实操】银河高级服务器操作系统实例分享,网卡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现象。

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2025年第十一届北京国际印刷技术展览会

2025年第十一届北京国际印刷技术展览会 展览时间:2025年5月15-19日 展览地点:北京中国国际展览中心(顺义馆) 主办单位:中国印刷及设备器材工业协会中国国际展览中心集团有限公司 承办单位:北京中印协华港国…

Java | Leetcode Java题解之第90题子集II

题目&#xff1a; 题解&#xff1a; class Solution {List<Integer> t new ArrayList<Integer>();List<List<Integer>> ans new ArrayList<List<Integer>>();public List<List<Integer>> subsetsWithDup(int[] nums) {Arra…

两大DRAM巨头20%产能转给HBM

随着人工智能(AI)需求的激增&#xff0c;全球领先的内存芯片制造商三星(Samsung)和SK海力士(SK Hynix)预计&#xff0c;由于高性能芯片需求不断增长&#xff0c;今年DRAM和高带宽内存(HBM)的价格将保持强劲。据《韩国经济日报》报道&#xff0c;三星和SK海力士已将其超过20%的D…

浅析Free RTOS中Queue的应用

目录 概述 1 认识Queue 1.1 Queue定义 1.2 FreeRTOS中的Queue 1.3 Queue状态 1.4 Queue内容 1.5 发送和接收Message 1.5.1 发送message 1.5.2 接收Message 2 Queue的特性 2.1 数据存储 2.2 可被多任务存取 2.3 读Queue时阻塞 2.4 写Queue时阻塞 3 使用Queue 3.1…

【JavaScript】WeakMap 和 WeakSet

Map Map 用于存储键值对。 添加属性&#xff1a; 使用 Map 的 set() 方法可以向 Map 对象中添加键值对。例如&#xff1a; const map new Map(); map.set(key1, value1); map.set(key2, value2);通过二维数组快速创建 map 键值对。 let arr [[1, 2],[2, 3],[3, 4]]let map …

数据可视化训练第7天(json文件读取国家人口数据,找出前10和后10)

数据 https://restcountries.com/v3.1/all&#xff1b;建议下载下来&#xff0c;并不是很大 import numpy as np import matplotlib.pyplot as plt import requests import json #由于访问url过于慢&#xff1b;将数据下载到本地是json数据 #urlhttps://restcountries.com/v3…

【java】异常与错误

Throwable包括Error和Expected。 Error Error错误是程序无法处理的&#xff0c;由JVM产生并抛出的。 举例&#xff1a;StackOverflowError \ ThreadDeath Expected Expected异常包括两类&#xff0c;即受检异常(非运行时异常)和非受检异常(运行时异常)&#xff0c;异常往往…

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

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

太阳能光伏发电应用过程中会用到哪些光伏组件?

随着全球对可再生能源的需求日益增加&#xff0c;太阳能光伏发电已成为一种重要的清洁能源解决方案。在太阳能光伏发电系统的运行过程中&#xff0c;光伏组件作为系统的核心部分&#xff0c;起着至关重要的作用。本文将详细介绍太阳能光伏发电应用过程中会使用到的关键光伏组件…

Nginx 生产环境部署的最佳实践

你好呀&#xff0c;我是赵兴晨&#xff0c;文科程序员。 最近一段时间&#xff0c;我一直在和大家一起探讨Nginx的相关话题。期间&#xff0c;我收到了很多小伙伴的私信&#xff0c;他们好奇地问我&#xff1a;在生产环境中&#xff0c;Nginx应该如何配置&#xff1f; 他们在…

Github20K星开源团队协作工具:Zulip

Zulip&#xff1a;让团队协作的每一次交流&#xff0c;都精准高效。- 精选真开源&#xff0c;释放新价值。 概览 随着远程工作的兴起和团队协作的需求不断增加&#xff0c;群组聊天软件成为了日常工作中不可或缺的一部分。Zulip 是github上一个开源的团队协作工具&#xff0c;…

游戏行业被攻击的原因、攻击种类及合适的服务器

很多游戏刚上线没多久就频繁遭到同行恶意攻击。在相关数据报告中&#xff0c;2023年上半年遭受DDoS攻击的行业中&#xff0c;游戏行业占到40%&#xff0c;而且攻击方式、攻击频率、攻击峰值呈明显上升趋势。很多充满创意的游戏开发公司刚才开发上线一个很有特色的产品&#xff…