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

news2025/3/4 17:35:47

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

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.coloradmin.cn/o/2309592.html

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

相关文章

算法1-4 蜜蜂路线

题目描述 一只蜜蜂在下图所示的数字蜂房上爬动,已知它只能从标号小的蜂房爬到标号大的相邻蜂房,现在问你&#xff1a;蜜蜂从蜂房 m 开始爬到蜂房 n&#xff0c;m<n&#xff0c;有多少种爬行路线&#xff1f;&#xff08;备注&#xff1a;题面有误&#xff0c;右上角应为 n−…

Android 常见View的防抖

在开发Android应用时&#xff0c;我们经常会遇到用户快速点击按钮或者频繁触发某个事件的情况。这种行为可能会导致不必要的重复操作&#xff0c;例如多次提交表单、重复加载数据等。为了避免这些问题&#xff0c;我们需要对这些事件进行防抖处理。本文将详细介绍如何在Kotlin中…

数据库原理SQL查询(习题+知识点)

一、查询学生表所有学生记录 1.题目内容代码编写 select * from stu; 2.知识点提醒 1&#xff09;选择表中的所有属性列有两种方法 在select关键字后列出所有列名若列的显示顺序与其在表中的顺序相同&#xff0c;则也可用 * 表示所有列 二、查询学生表中部分信息 1.题目内…

安路FPGA开发入门:软件安装与点灯与仿真(TangDynasty ModelSim)

文章目录 前言软件安装开发软件仿真软件 点灯测试代码编写与编译引脚分配固件下载 仿真测试ModelSim添加仿真库TangDynasty仿真设置进行仿真 后记 前言 最近因为工作需要用安路的FPGA&#xff0c;这里对安路FPGA开发相关流程做个记录。作为测试只需要一个核心板&#xff08;我这…

浅克隆与深克隆区别

package d12_api_object;public class Test2 {public static void main(String[] args) throws CloneNotSupportedException {//目标&#xff1a;掌握Object类提供的对象克隆方法//1、protected Object clone():对象克隆User u1 new User(1,"min","1120",…

如何实现小数据的大智能?

大数据可以通过从态到势、从感到知的态势感知过程计算出可能性&#xff0c;如各种大模型&#xff0c;而要通过小数据、小样本获得好的预测结果&#xff0c;可以通过从势到态、从知到感的势态知感过程算计出可能性。 一般情况下&#xff0c;大家常常会提到了大数据和小数据在态势…

打开 Windows Docker Desktop 出现 Docker Engine Stopped 问题

一、关联文章: 1、Docker Desktop 安装使用教程 2、家庭版 Windows 安装 Docker 没有 Hyper-V 问题 3、安装 Windows Docker Desktop - WSL问题 二、问题解析 打开 Docker Desktop 出现问题,如下: Docker Engine Stopped : Docker引擎停止三、解决方法 1、检查服务是否…

基于单片机和蓝牙通讯的简易钢琴控制装置设计

摘要&#xff1a;本文设计了一个基于单片机和蓝牙通讯的简易钢琴演奏控制装置&#xff0c;在 Proteus 中设计绘制了系统电路原理图&#xff0c;在 Keil 中编写了单片机控制程序并导入 Proteus电路原理图中进行了软、硬件交互仿真&#xff0c;设置了手机蓝牙串口调试的键盘设置及…

React Native从入门到进阶详解

React Native知识框架从入门到进阶的问题。首先需要结合我搜索到的资料来整理出结构化的内容。证据中有多本书籍和文章&#xff0c;可能会涉及不同的章节和重点&#xff0c;需要仔细梳理。 首先&#xff0c;根据邱鹏源的《React Native精解与实战》将知识分为入门和进阶两大部分…

STL——list的介绍和模拟实现

前言 本篇博客我们将要开始介绍list这个容器&#xff0c;list是带头双向循环链表&#xff0c;STL标准模板库中实现了list这样方便我们去使用&#xff0c;那么本篇博客我们将脱下list的神秘外衣&#xff0c;介绍它的使用以及模拟实现。 list的介绍 list的底层是带头双向循环链…

go前后端开源项目go-admin,本地启动

https://github.com/go-admin-team/go-admin 教程 1.拉取项目 git clone https://github.com/go-admin-team/go-admin.git 2.更新整理依赖 go mod tidy会整理依赖&#xff0c;下载缺少的包&#xff0c;移除不用的&#xff0c;并更新go.sum。 # 更新整理依赖 go mod tidy 3.编…

go 分布式redis锁的实现方式

go 语言以高并发著称。那么在实际的项目中 经常会用到锁的情况。比如说秒杀抢购等等场景。下面主要介绍 redis 布式锁实现的两种高并发抢购场景。其实 高并发 和 分布式锁 是一个互斥的两个状态&#xff1a; 方式一 setNX&#xff1a; 使用 redis自带的API setNX 来实现。能解决…

深入理解递归:从原理到C++实践

什么是递归&#xff1f; 递归&#xff08;Recursion&#xff09;是编程中一种强大的技术&#xff0c;其核心思想是&#xff1a;函数直接或间接地调用自身。如同俄罗斯套娃一般&#xff0c;每个函数调用都会解开问题的一个层级&#xff0c;直到达到基础条件。 递归三要素&…

MyBatis-Plus 入门详解:从零搭建高效持久层

一、MyBatis-Plus 简介 MyBatis-Plus&#xff08;简称 MP&#xff09;是 MyBatis 的增强工具&#xff0c;在保留 MyBatis 原生功能的基础上&#xff0c;提供了全自动化的 CRUD 操作、强大的分页插件、代码生成器等功能&#xff0c;显著减少开发工作量。与原生 MyBatis 相比&…

阿里云物联网获取设备属性api接口:QueryDevicePropertyData

阿里云物联网接口&#xff1a;QueryDevicePropertyData 说明&#xff1a;调用该接口查询指定设备或数字孪生节点&#xff0c;在指定时间段内&#xff0c;单个属性的数据 比如提取上传到物联网的温度数据 api文档&#xff1a;QueryDevicePropertyData_物联网平台_API文档-阿里…

歌曲分类和流行度预测

1. 项目介绍 本项目从kaggle平台上下载了数据集&#xff0c;该数据集包含了3万多首来自Spotify API 的歌曲&#xff0c;共有23个特征。首先对数据集进行预处理&#xff0c;如重复行、缺失值、标准化处理等。再对预处理后的数据进行探索性分析&#xff0c;观察各变量的分布情况&…

不重启mysql情况下排查慢SQL

查状态 mysql> show variables like %slow_query_log%; 开启慢日志 mysql> set global slow_query_logON; 设置1s超时 mysql> set global long_query_time1; 如果想更小&#xff0c;可以设置0.5 查看慢SQL的日志 cat /var/lib/mysql/localhost-slow.log &…

27、Java 反射机制

15-1 Java 反射机制概述 Reflection&#xff08;反射&#xff09;是被视为动态语言的关键 动态语言&#xff1a;在运行时代码可以根据某些条件改变自身结构。如 C#\JavaScript\PHP 静态语言&#xff1a;运行时结构不可变的语言。如 Java\C\C 问题&#xff1a;通过直接new的方…

Android 端侧运行 LLM 框架 MNN 及其应用

MNN Chat Android App - 基于 MNN 引擎的智能聊天应用 一、MNN 框架简介与工作原理1.1 什么是 MNN&#xff1f;1.2 MNN 的工作原理 二、MNN Chat Android App2.1 MNN Chat 的功能2.2 MNN Chat 的优势2.3 MNN Chat Android App 的使用 三、总结 随着移动端人工智能需求的日益增长…

FPGA学习(一) —— 四位全加器

FPGA学习&#xff08;一&#xff09; —— 四位全加器 文章目录 FPGA学习&#xff08;一&#xff09; —— 四位全加器一、半加器1、半加器的真值表2、Verilog代码实现3、RTL原理图4、波形仿真 二、一位全加器1、一位全加器真值表2、Verilog代码实现3、RTL原理图4、波形仿真 三…