【银河麒麟高级服务器操作系统】服务器测试业务耗时问题分析及处理全流程分享

news/2025/3/3 4:46:36/

 更多银河麒麟操作系统产品及技术讨论,欢迎加入银河麒麟操作系统官方论坛

https://forum.kylinos.cn


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

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

开发者专区:https://developer.kylinos.cn

文档中心:https://document.kylinos.cn


服务器环境以及配置

【机型】

处理器:

Hygon C86 7265 24-core Processor

内存:

512GB

整机类型/架构:

X86_64

【内核版本】kernel-4.19.90-23.32.v2101.ky10.x86_64

【OS镜像版本】银河麒麟高级服务器操作系统 Kylin-Server-10-SP2-Release-Build09-20210524-x86_64

现象描述

在银河麒麟高级服务器操作系统V10SP1 系统上跑容器应用,从监控上看,kylin 的 CPU 和连接耗时都和红帽差距有点大,测试数据如下图。

1、intel_kylin组合业务耗时特别高,消费数很低;

2、hygon_kylin组合消费数比intel_redhat低了30%,且高并发下cpu异常升高。

现象分析

 intel_kylin问题分析

针对intel_kylin组合业务耗时特别高的问题,分析1000线程数业务测试具体数据,如下图,copy事务最高耗时达到781s,平均4s多。

cpu使用率及网络流量监控数据如下图,cpu使用率仅15%,网络流量最高不足20MB。

在intel_redhat对比测试,结果也出现耗时突然升到10000ms的情况,分析耗时过高可能是测试程序异常导致数据失真,属于异常现象。

 hygon_kylin问题分析

(1)针对hygon_kylin组合在600线程时消费数相比低了30%的问题,由于之前没有抓到600线程时的perf、top等数据,之后复现时再分析;先分析1000线程数具体测试数据。

上图中copy事务耗时最大值达到了18347.5,可能部分毛刺影响最终结果;抓取机器参数对比,hygon和intel机器各项性能指标如下:

hygon机器相比intel,cpu频率略低,测试场景下IPC(每cpu周期执行指令数)只有intel的一半多,因此hygon性能可能相对低一点,且测试时限制16C16G,hygon的核心数多的优势没有发挥出来,最终可能导致hygon机器测试结果比intel略低。

(2)分析hygon_kylin环境高并发下cpu使用率升高问题,根据hygon_kylin抓到的perf数据,转成火焰图如下,热点主要在ConsumeMessageT、NettyClientSele和NettyClientWork进程中。

对比intel_redhat,perf转换成火焰图效果如下。

在hygon_kylin中ConsumeMessageT进程和intel环境占比接近都达到60%以上,说明ConsumeMessageT线程在各自环境中都是主要热点进程;

再看hygon_kylin上cpu使用率及网络流量监控,cpu使用率达到75%:

对比intel_redhat上cpu使用率和网络流量监控平均56%左右。

通过抓取到top数据中的cpu使用率分析hygon_kylin环境cpu使用率升高原因。

对比每个ConsumeMessageT线程cpu使用率,两套环境比较接近,最高都在12%左右,但是统计多个时间点活动的ConsumeMessageT进程数量,hygon_kylin环境中有107-135个,intel_redhat上只有71-105个,猜测cpu使用率可能跟测试程序拉起的ConsumeMessageT线程数有关,具体可能跟测试程序关系更大。

小结

通过对上述perf、top数据、测试结果进行分析,初步怀疑:

1、intel_kylin环境并不是正常情况下测试,数据可能有问题;

2、hygon机器测试性能低于intel,可能会导致测试结果略低;

3、hygon_kylin环境在高并发场景下拉起了更多ConsumeMessageT测试进程,表现出cpu使用率升高,可能跟测试程序关系更大。

分析结果

复测验证

使用相同的测试方法复测收集数据来进行验证,期间测试程序经过几次改版,最新版本上复测得到的数据如下图所示。

该版本没有复现cpu使用率过高的问题,各项指标之间差距也没那么大。

测试波动分析

intel_redhat在800线程时测试了两次,第一次测试时消费数较高延迟也较低,但是测试快结束时耗时突然升高,到第二次测试时耗时平均400ms,消费数也有所下降,说明测试结果仍会有一定波动。

intel_kylin复测分析

intel_kylin复测数据和cpu使用率如下,对比intel_redhat各项数据都相差不大;

抓取intel_kylin环境perf数据,转换成火焰图效果如下:

在intel_redhat环境抓取的perf火焰图:

两个环境各个函数热点占比接近,没有发现异常开销,且测试结果、cpu使用率等也十分接近,说明在intel机器下kylin系统和redhat性能相差不大。

hygon_kylin复测分析

hygon_kylin和cpu使用率监控如下图,仍有部分毛刺或导致最终平均耗时偏高,测试时cpu利用率在40%左右。

抓取perf火焰图如下:

对比intel机器,海光的swapper占比更小,业务进程占比都高一些,可能整体cpu使用率仍相对较高,而其他函数比例都比较接近,没有发现明显异常的函数热点。

再通过抓取top数据进行对比,统计各个时间hygon_kylin和intel_rhel机器上的线程数,两者都是平均65个活动的ConsumeMessageT线程,怀疑新版本的测试程序对此做了一些优化,比之前测试的活动线程数少一些,相应的cpu使用率也较低。

总结

对比两次测试数据,旧版本测试数据如下:

新版本各个组合测试数据差距没那么大,cpu使用率也更稳定。

结合上述复测数据和问题分析结果:

(1)测试用例中间经过几次改版,可能修复了一些bug,之前intel_kylin测试时可能是测试程序异常导致数据失真,复测intel环境下,kylin和redhat系统性能相差不大。

(2)复测hygon_kylin相比intel_redhat性能仍略差,怀疑测试结果有一定波动,并且hygon机器性能低于intel,测试结果可能跟测试波动和机器性能有关。

(3)复测hygon_kylin场景cpu使用率没有出现异常升高,怀疑也是跟测试程序版本有关,最新版已解决相关bug。

目前复测各个环境测试结果相差不大,相比之前主要改动为测试程序改版,系统没有相关修改,怀疑主要还是测试程序的问题。


http://www.ppmy.cn/news/1576202.html

相关文章

学习笔记-单片机蓝桥杯大模板更新-米醋

一,Seg 底层: 高电平灭,共阳极 ‘,’的ASCII码是44 不消隐的话: 显示完3,想显示5:显示5时有视觉残留 消隐: 显示完3,想显示5:流程:先显示3&#xff0c…

C++ Qt使用命令自动添加exe依赖的Qt库

进入exe文件夹下,打开对应Qt版本的Cmd工具:QT 5.12.2cmd命令工具 执行以下命令,进入exe文件目录: cd E:\proj\bin 如果cd 没有反应,可按顺序执行以下代码进入指定目录: cd \ cd E: cd E:\proj\bin …

深度探索:DeepSeek与鸿蒙HarmonyOS应用开发的深度融合

文章目录 一、概述1.1 什么是DeepSeek?1.2 鸿蒙HarmonyOS的特点 二、技术优势与应用场景2.1 技术优势2.2 应用场景 三、开发指南3.1 环境搭建3.2 集成AI模型3.3 分布式任务调度 四、实际案例分析4.1 智能家居控制4.2 智能健康监测 五、未来展望《AI智能化办公&#…

FFmpeg入门:最简单的音频播放器

FFmpeg入门:最简单的音频播放器 欢迎大家来到FFmpeg入门的第二章,今天只做一个最简单的FFmpeg音频播放器;同样,话不多说,先上流程图 流程图 以上流程和视频播放器的解码过程基本上是一致的; 不同点在于 S…

DeepSeek本地部署与Dify结合创建私有知识库指南

python调用本地deepseek+Dify的API使用--测试WX自动发送信息-CSDN博客 DeepSeek,一家在人工智能领域具有显著技术实力的公司,凭借其千亿参数规模的AI大模型,以及仅需0.5元人民币即可进行百万tokens的API调用成本,已经取得了令人瞩目的成就。不仅如此,DeepSeek的模…

【AI大模型】Ollama部署本地大模型DeepSeek-R1,交互界面Open-WebUI,RagFlow构建私有知识库

文章目录 DeepSeek介绍公司背景核心技术产品与服务应用场景优势与特点访问与体验各个DeepSeek-R系列模型的硬件需求和适用场景 Ollama主要特点优势应用场景安装和使用配置环境变量总结 安装open-webui下载和安装docker desktop配置镜像源安装open-webui运行和使用 RagFlow介绍主…

Tomcat10下载安装教程

一、下载Tomcat10 Tomcat官方网站:Apache Tomcat? - Welcome!左侧Download部分可以下载对应版本的Tomcat。我们以Tomcat10为例注意:Tomcat8、Tomcat9(javax.*);Tomcat10(jakarta.*)点击Downlo…

golang 内存对齐和填充规则

内存对齐和填充规则 对齐要求:每个数据类型的起始地址必须是其大小的倍数。 int8(1字节):不需要对齐。int16(2字节):起始地址必须是2的倍数。int32(4字节):起…