【问题处理】银河麒麟操作系统实例分享,adb读写缓慢问题分析

1.问题环境

处理器:

HUAWEI Kunpeng 920 5251K

内存:

512 GiB

整机类型/架构:

 TaiShan 200K (Model 2280K)

BIOS版本:

Byosoft Corp.  1.81.K

内核版本

4.19.90-23.15.v2101.ky10.aarch64

第三方应用

数据库

2.问题描述

数据库业务运行过程中,发现读写速度缓慢,软中断占用cpu过高。

目前环境已经恢复需要排查原因,数据库读写慢的时候发现软中断占用cpu很高,图一是出现问题的时候现场直接在环境上看的,从sosreport上面看并不高,但是收集日志的时候问题现象还在。

docker这些包用的不是系统自带源的,开了numa,irqbalance服务是正常运行的,其中perf.data.old太大了 打不开,perf.data可以,系统日志中没发现异常,内存也正常,其中cpu可以看到部分核心使用率很高的情况。

3.问题分析

3.1.分析系统环境

3.1.1. 查看网络配置

查看网络情况,enp133s0f0和enp134s0f0配置mode4组成bond0。

查看./sos_commands/networking/ethtool_-S_enp133s0f0和./sos_commands/networking/ethtool_-S_enp134s0f0,发现两个网卡都存在大量的rxX_cache_full的情况。

查看bond0的rxDrop情况。

查看enp133s0f0和enp134s0f0网卡队列情况和ring buffer个数,两个网卡的网卡队列数为63,ring buffer个数为1024。

查看./proc/net/softnet_stat发现第二列和第三列都存在很大的值,查看对应的内核参数net.core.netdev_max_backlog为10000和net.core.netdev_budget为300。

  • 第一列:processed:表示处理了多少个数据包。
  • 第二列:dropped:表示丢弃了多少个数据包,因为队列满了或者内存不足。
  • 第三列:time_squeeze:表示发生了多少次时间压缩,即软中断处理时间超过了预设的限制。

/proc/net/softnet_stat 的第三列值持续增加,这通常意味着软中断处理时间不足以处理所有入站数据包。在这种情况下,可以尝试增加 net.core.netdev_budget 的值,以允许在单次软中断中处理更多的数据包,从而减少因为处理不及时而推迟或丢弃的数据包数量。

3.1.2. 查看系统服务

发现irqbalance服务开启状态。

3.1.3 .查看CPU情况

可见CPU是96核,分4个NUMA节点,每个numa节点24个CPU核。

查看./sys/class/net/enp133s0f0/device/numa_node和./sys/class/net/enp134s0f0/device/numa_node,可见两个网络接口都在numa node 2上。

3.2 .分析sa日志

3.2.1. 分析内存使用情况

sar -rh -f sa21,查看当时的内存使用情况,可见空闲内存较少,缓存较大。查看./proc/sys/vm/min_free_kbytes为524288,较小。

sar -rh -f sa20,查看前一天的内存使用情况,内存使用和问题发生时相同。

3.2.2. 分析CPU使用情况

sar -u -f sa21,查看cpu使用情况,%system部分占用CPU较高。

sar -u -f sa20,查看前一天的CPU使用情况,前一天cpu使用情况和问题发生时类似。

3.2.3. 分析负载情况

sar -q -f sa21,查看当时的系统负载,负载偏高。

 sar -q -f sa20,查看前一天的系统负载情况,可见前一天的系统负载也偏高,和问题发生时没有明显差异。

3.3. 分析messages日志

查看messages日志,日志中没有明确的报错信息。

3.4 分析perf采集

4.问题小结

1、根据CPU核数及NUMA情况,结合网卡的所属numa节点,建议调小网卡队列数,调大网卡的ring buffer。

2、根据查看的./proc/net/softnet_stat情况,第三列的增加表明了软中断处理时间的不足,而 net.core.netdev_budget 参数的调整可以帮助提高在一个软中断周期内可以处理的数据包数量,从而改善性能。建议将net.core.netdev_budget调为1024。

3、发现irqbalance服务开启状态,建议关闭irqbalance服务。

5.相关建议

ethtool -L  enp133s0f0 combined 24
ethtool -L  enp134s0f0 combined 24
ethtool -G  enp133s0f0 rx 8196 tx 8196
ethtool -G  enp134s0f0 rx 8196 tx 8196
ethtool -K  enp133s0f0 lro on
ethtool -K  enp134s0f0 lro on

echo "net.core.netdev_budget=1024" >> /etc/sysctl.conf
sysctl -p

systemctl disable irqbalance --now

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

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

相关文章

深度学习--CNN应用--VGG16网络和ResNet18网络

前言 我们在学习这两个网络时,应先了解CNN网络的相关知识 深度学习--CNN卷积神经网络(附图)-CSDN博客 这篇博客能够帮我们更好的理解VGG16和RetNet18 1.VGG16 1.1 VGG简介 VGG论文网址:VGG论文 大家有兴趣的可以去研读一下…

pinpoint接入及接入tomcat

# 5、pinpoint接入 1、开启性能监控 应用管理详情页面-->【属性】编辑,勾选开启用性能监控 2.java命令行引用pinpoint和相关变量 java $JAVA_OPTS -javaagent:/usr/local/pinpoint-agent/pinpoint-bootstrap-1.7.2.jar -Dpinpoint.agentIddcs-repair-${HOSTNAME…

k8s集群安装网络插件calico常见问题

关于calico网络插件报错的常见问题处理 1.安装calico插件时,calico相关pod无法成功运行。 报错信息:“MountVolume.SetUp failed for volume "bpffs" : hostPath type check failed: /sys/fs/bpf is not a directory”解决办法:检…

互联网摸鱼日报(2024-04-19)

互联网摸鱼日报(2024-04-19) 36氪新闻 魏建军把方向盘交给AI,长城汽车开卷智能驾驶 一季度我国工业经济保持较快增长,下一步这么做 晶华光学北交所IPO问询分析:利润下滑和存货计提是否充分或成公司能否上会的关键性问题 这10 本改变人生的…

【智能算法】鸡群优化算法(CSO)原理及实现

目录 1.背景2.算法原理2.1算法思想2.2算法过程 3.结果展示4.参考文献 1.背景 2014年,X Meng等人受到鸡群社会行为启发,提出了鸡群优化算法(Chicken Swarm Optimization, CSO)。 2.算法原理 2.1算法思想 CSO算法的思想是基于对…

数仓建模—物理数据模型

数仓建模—物理数据模型 前面我们讲了数据模型和逻辑数据模型,你可以参考前面的文章,这一节我们介绍一下物理数据模型 数仓建模—数据模型 数仓建模—逻辑数据模型 什么是物理数据模型 物理数据模型指定如何在数据库中构建数据模型。它概述了所有表结构,包括列名、数据类…

润开鸿与蚂蚁数科达成战略合作,发布基于鸿蒙的mPaaS移动应用开发产品

4月18日,江苏润和软件股份有限公司(以下简称“润和软件”) 旗下专注鸿蒙方向的专业技术公司及终端操作系统发行版厂商江苏润开鸿数字科技有限公司(以下简称“润开鸿”)与蚂蚁数科举行战略合作签约仪式,并发…

【Java开发指南 | 第十六篇】Java数组及Arrays类

读者可订阅专栏:Java开发指南 |【CSDN秋说】 文章目录 数组数组特点创建数组处理数组多维数组Arrays类 数组 Java中的数组是一种用来存储固定大小的相同类型元素的数据结构。 数组特点 数组具有以下特点: 1、固定大小: 一旦数组被创建,其…

系统调优助手,PyTorch Profiler TensorBoard 插件教程

0x1. 前言 使用PyTorch Profiler进行性能分析已经一段时间了,毕竟是PyTorch提供的原生profile工具,个人感觉做系统性能分析时感觉比Nsys更方便一些,并且画的图也比较直观。这里翻译一下PyTorch Profiler TensorBoard Plugin的教程并分享一些…

Sui在Basecamp 2024上重塑区块链行业

Sui主网于去年推出,世界各地的社区活动帮助开发者了解了这一开创性的区块链技术的潜力,而Sui Basecamp表明Sui时代已经到来。 来自65个国家的超过1100人参加了今年在巴黎举办的Sui全球活动,以了解Sui在游戏和DeFi领域的坚实立足点。在两天的…

js DOM模型常用方法复盘梳理

大家好,我是资深前端之路,今天主要是在对常用的js基础知识进行复盘,回顾下最基础的知识,不断打地基。今天主要回顾的知识是以下几个内容: 1、什么是DOM 定义:文档对象模型,操作html标签的能力&…

什么是XXE攻击?如何进行防护

安全性很难做到正确,即使在当今具有安全意识的世界中,也存在一些严重的漏洞,例如 XML 外部实体 (XXE),它们被忽视并最终成为破坏的原因。 XML 外部实体 (XXE) 攻击是一种计算机安全漏洞,通常存在于 Web 应用程序中&…

单字符 和 宽字符

#define PI 3.14 //产生新类型 typedef 3.14 PI单字符,一个字节存储,宽字符,二个字节存储。sizeof(L"abc")8 size("abc")4typedef unsigned short wchar_t; chartypedef wchar_t WCHAR; typedef char CHAR;WCHAR* p …

SpringBoot 项目Docker部署三种方式

一种:直接拷贝jar到服务器部署 1.增加docker配置文件 新建Dockerfile文件,负责Docker的配置 FROM openjdk:21#ENV timezone RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \&& echo Asia/Shanghai >/etc/timezone# WORKD…

项目活动图

关键路径: 从开始到结束的所有路径中,时间最长的一条为关键路径。(特点:在关键路径上,所有任务的松弛时间都为0); 松弛时间: 最晚开始时间 – 最早开始时间; 所有的路…

解释Java中的容器化技术,如Docker和Kubernetes

容器化技术是近年来软件开发和运维领域的一项重大创新,它允许开发者将应用程序及其依赖项打包到一个轻量级、可移植的容器中,从而实现快速、一致和高效的部署。在Java开发中,Docker和Kubernetes是两种非常流行的容器化技术。 ### Docker Do…

2W 3KVDC 隔离单、双输出 DC/DC 电源模块——TPH 系列

TPH系列是一款2W,单、双输出隔离电源模块,特别适合板上只有一种电压而要求有正负电源的场合,工业级温度范围–40℃到105℃,在此温度范围内都可以稳定输出2W,并且效率非常高,高达86%,温升非常低&…

JavaSE进阶篇-面向对象程序设计

一、面向对象和面向过程的关系 1)面向过程:强调的是功能行为,以函数为最小单位,考虑怎么做; 2)面向对象:强调了具备功能的对象,以类/对象为最小单位,考虑谁来做。 总结…

虚拟机的网络模式

仅主机 仅用来与主机交互,使用的是VMnet1网卡,该模式无法链接互联网,只能与物理机通讯,如果ip不与物理机在同一个网段,那么也无法与物理机通讯 桥接模式 该模式下的虚拟机会链接VMnet0网卡,该网卡会直接桥接…

Python进阶编程 --- 3.闭包、装饰器、设计模式、多线程、网络编程、正则表达式、递归

文章目录 第三章:3.1 闭包3.2 装饰器语法糖写法 3.3 设计模式3.3.1 单例模式3.3.2 工厂模式 3.4 多线程3.4.1 进程、线程和并行执行3.4.2 多线程编程 3.5 网络编程3.5.1 Socket3.5.2 服务端开发3.5.3 客户端开发 3.6 正则表达式3.6.1 基础匹配3.6.2 元字符匹配单字符…