【YashanDB知识库】YCM上CPU负载超过实际核数是怎么回事

本文来自YashanDB官网:https://yashandb.com/newsinfo/7849027.html?templateId=1718516

【问题现象】
客户的实际服务器是128核,在做压测的过程,YCM显示CPU使用率峰值是80,但是CPU平均负载峰值是200,超过了实际硬件的CPU核数。

【问题的风险及影响】
普通疑问,对业务无影响,对客户做压力结果评估有影响。

【问题影响的版本】
YashanDB版本:所有版本

【问题发生原因】
在没接触这个概念的之前的理解应该是这样:比如有128核,压测时用到60核,CPU使用率应该时 60/128,CPU负载应该时60 个CPU核。但是业界通用的负载计算不是这样的!
1、什么是CPU平均负载
负载是指一个服务器的压力情况。
平均负载是指单位时间内,处在可执行状态和不可中断睡眠状态的进程的平均数。也就是说,它包括了处在执行态,阻塞态和就绪态的进程。可以参考:
https://link.juejin.cn/?target=https%3A%2F%2Fzhuanlan.zhihu.com%2Fp%2F384468564%23%3A~%3Atext%3D%25E5%25B9%25B3%25E5%259D%2587%25E8%25B4%259F%25E8%25BD%25BD%25E5%2592%258CCPU%25E4%25BD%25BF%25E7%2594%25A8

2、崖山YCM上的CPU负载参考业界同样做法
崖山监控平台上CPU平均负载是参照业界标准实现的,会出现高于实际CPU核数的情况。这是正常的。
实际测的情况,是和启动多少并发/线程相关,多少session/worker。如果每个并发有db的一个链接,业务启动的并发多,意味着db的压力大,等待时间多,负载就大。

【解决方法及规避方式】
负载是反应一个服务器的压力情况,总的来说,崖山的做法是业界标准的做法,并不是问题。

posted @   YashanDB  阅读(6)  评论(0编辑  收藏  举报
编辑推荐:
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· C++代码改造为UTF-8编码问题的总结
· DeepSeek 解答了困扰我五年的技术问题
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· 用 C# 插值字符串处理器写一个 sscanf
阅读排行:
· [翻译] 为什么 Tracebit 用 C# 开发
· 腾讯ima接入deepseek-r1,借用别人脑子用用成真了~
· Deepseek官网太卡,教你白嫖阿里云的Deepseek-R1满血版
· DeepSeek崛起:程序员“饭碗”被抢,还是职业进化新起点?
· RFID实践——.NET IoT程序读取高频RFID卡/标签
点击右上角即可分享
微信分享提示