当前位置: 首页 > article >正文

平均 CPU 利用率指标为何该摒弃?多个案例揭示真相!

1. 作者信息与文章背景Jeremy Theocharis 是《平凡即卓越》作者、UMH 联合创始人兼首席技术官。文章基于其在 2026 年 4 月云原生亚琛聚会上的演讲探讨为何应摒弃平均 CPU 利用率指标。2. 应用程序问题引出我们应用程序中的一个 Go 函数在生产环境总是被取消执行。该函数设置严格超时时间同样代码在开发环境、CI/CD 管道及集成测试中正常运行但在生产环境有时超超时时间以 context deadline exceeded 错误终止。更糟的是使用的状态机库 1 在上下文被取消后无法自行恢复会崩溃并挂起且无法复现问题。与用户交流他们反馈 CPU 利用率正常我们花数周才找到问题根源。3. 为何平均 CPU 指标不够用从事计算机工作系统变慢时常打开任务管理器查看 CPU 情况。在 Linux 服务器可用 top、htop 等工具我们常关注平均 CPU 使用率。配置虚拟机时会选 vCPU 数量有“高性能”“专用”等昂贵选项但我们可能未探究原因。然而各种工具、供应商和仪表盘传达的直觉在这里失灵。所有工具只显示平均 CPU 利用率无法帮助解读该指标。CPU 利用率与可用容量非线性关系从 80% 到 81% 的 CPU 利用率提升增加的等待时间约是从 10% 到 11% 提升的 20 倍 2。即使 80% 利用率下有 20%“余量”延迟也已开始上升 3。平均 CPU 利用率适用于判断 CPU 是否有效利用是成本问题但仅适用于可等待的工作负载。对于对延迟敏感的工作负载更高利用率意味着更长等待时间。在我们案例中CPU 利用率不高遇到 Linux 内核 cgroup 特性及限流副作用。容器设置资源限制为 2000m内核视为时间预算预算耗尽容器会被 限流直到下一个周期开始。我们和客户使用的工具未显示此问题所以花数周才找到 context deadline exceeded 错误原因。4. CFS 限流的实际工作原理假设在容器运行处理 HTTP 消息的服务按指南设置资源限制 4。kubectl top pod 显示使用 800 毫核水平 Pod 自动伸缩器HPA配置为 80% 利用率时扩容2000m 限制下使用 800m 仅 40%看似正常。但实际有三个关键数字决定情况资源限制 2000m、内核的 CFS 调度周期默认 100 毫秒 5、主机 CPU 4 核。容器可在节点所有 CPU 核心分配 200 毫秒时间。一个资源密集型 HTTP 请求可能 50 毫秒耗尽 4 核 可用预算第二个请求会被 限流需等 50 毫秒到下一个调度周期。若负载模式是“突发、空闲、空闲、空闲、突发”p99 延迟可能急剧上升但 CPU 图表仍显示正常。我们的 Go 函数就遇到此问题因其他 goroutine 耗尽周期可用预算函数因资源不足终止出现 context deadline exceeded 错误且底层库 1 上下文被取消时会陷入死锁CPU 图表却显示正常。Indeed Engineering 在 2019 年也发布类似案例 6。5. 如何发现并应对该问题我们花数周找错方向其实所需指标在 /sys/fs/cgroup/cpu.stat 中 7。内核为设置 CPU 限制的容器记录 nr_throttled 和 throttled_usec。运行 kubectl exec -- cat /sys/fs/cgroup/cpu.stat 可查看。若计数器增加说明有问题。在相关生态系统完善前需自己检查指标。Kube - prometheus 提供 CPUThrottlingHigh 警报但大多安装禁用因常误报 8。对于专用核心容器可通过 cat /sys/fs/cgroup/cpu.stat 检查同一目录的 cpu.pressure 可检测资源饱和 9。对于虚拟机 vCPU可通过 top 中 %st 查看“窃取时间”10。即时解决方法是检查这些指标长远需在应用程序层面进行资源饥饿检测。应用程序可检查一毫秒是否正常若不正常说明 CPU 资源不足可能是 CFS 限流、虚拟机窃取时间等原因。应用程序应发出警报并反应如推迟后台维护工作。Redpanda 的反应堆称此为“反应堆停滞”11CockroachDB 围绕 Go 的 /sched/latencies:seconds 直方图构建反馈控制器p99 延迟超 1 毫秒触发减少后台工作 12。Go 1.25 默认使 GOMAXPROCS 支持 cgroup13可降低资源饥饿风险但同一容器内其他进程耗尽共享预算时无能为力所以应用程序层面检测仍是通用解决方案。6. 总结为 Docker 容器设置资源限制是分配时间预算资源密集型 HTTP 请求可能瞬间耗尽节点核心资源平均 CPU 图表可能无法反映情况。应关注 cgroup 限流、内核 PSI、虚拟机管理程序窃取时间、应用程序层面资源饥饿信号等指标。综合使用这些指标可发现平均 CPU 图表隐藏的问题。在大型组织运行应用程序时因资源限制问题请求增加 CPU 或取消限制可能遭 IT 部门拒绝他们会提及审计和合规性指南。所以应摒弃平均 CPU 利用率指标而非取消资源限制可提供更多信息处理限制。若遇到类似讨论可分享此文章。

相关文章:

平均 CPU 利用率指标为何该摒弃?多个案例揭示真相!

1. 作者信息与文章背景Jeremy Theocharis 是《平凡即卓越》作者、UMH 联合创始人兼首席技术官。文章基于其在 2026 年 4 月云原生亚琛聚会上的演讲,探讨为何应摒弃平均 CPU 利用率指标。2. 应用程序问题引出我们应用程序中的一个 Go 函数在生产环境总是被取消执行。…...

Godot开源RPG框架选型与状态契约构建指南

1. 这不是又一个“Godot入门教程”,而是一套可落地的RPG世界构建方法论 你有没有试过打开Godot,新建一个项目,拖进几个精灵,写两行 move_and_slide() ,然后卡在“接下来该做什么”上?我做过——整整三年前…...

Lovable主题定制深度教程:不改一行PHP代码,实现品牌专属UI/UX升级(仅限当前版本v4.8.3私有补丁包)

更多请点击: https://codechina.net 第一章:Lovable主题定制深度教程:不改一行PHP代码,实现品牌专属UI/UX升级(仅限当前版本v4.8.3私有补丁包) Lovable v4.8.3 通过其增强型 CSS 变量体系与声明式主题注入…...

Unity UGUI Mask与3D对象Stencil裁剪失效的根因解析

1. 这不是“Stencil失效”,而是 Unity 渲染管线里一场被忽略的层级静默冲突 你有没有试过在 UGUI ScrollView 里放一个带 Mask 的滚动区域,再把一个 3D 模型(比如一个带透明材质的粒子特效、或者一个半透的 UI 面板)叠在它上面&am…...

ElevenLabs广西话语音定制全链路指南(含南宁/柳州/玉林三方言音色对比数据)

更多请点击: https://codechina.net 第一章:ElevenLabs广西话语音定制的背景与技术定位 随着语音合成技术从通用语种向方言及小众语言纵深演进,区域性语音能力成为人机交互本地化落地的关键瓶颈。广西话(以南宁白话为代表&#x…...

Unity Stencil属性丢失根因与Property ID注册机制解析

1. 这个报错不是材质丢了,是Unity在“认人”时看错了身份证你在Unity编辑器里猛敲CtrlS保存场景,突然控制台炸出一行红字:Material xxx doesnt have _Stencil property。你第一反应可能是——“我明明在Shader里写了_Stencil,也加…...

Unity URP中_Material Stencil属性报错的四层根因与修复

1. 这个报错不是材质没写对,而是渲染管线在“敲门问权限” 刚在Unity 2021.3 LTS项目里切完URP(Universal Render Pipeline)后打包iOS,突然弹出一行红字: Material xxx doesnt have _Stencil property 。我第一反应是…...

数据结构 —— 链表

在数据结构体系中,顺序表与链表是两大最基础的线性存储结构。顺序表依靠连续内存实现随机访问,但插入、删除中间元素效率低下;而链表用离散内存 指针连接的方式,完美解决了顺序表的痛点,是 Linux 内核、操作系统、网络…...

讲讲IO复用三个函数的底层逻辑

在 Linux 网络编程中,IO 复用是高并发服务的核心基石。我们熟知的 Nginx、Redis、日志服务、后端网关,全部都是基于 IO 复用实现高并发。很多同学只会用 select / poll / epoll 这三个函数,但完全不懂内核底层到底发生了什么,遇到…...

2026亲测:专业降AI率工具选这款就对了3秒改写无痕迹

2026 年降 AIGC 工具已从“基础语义替换”进化为多维度智能优化系统,核心评估指标涵盖 AI 痕迹清除效率、专业表达准确性、格式结构完整性、长段落逻辑稳定性、内容重合度降低效果及高校检测平台兼容性。本次测评深入分析 5 款主流工具,测试范围包括中英…...

2026这6款宝藏降AIGC平台大起底,一键把AI检测率精准控到安全区!

步入 2026 年,学术圈的风向早已不是过去那个简单的“降重”时代。随着 AI 技术的迅猛发展,论文查重系统不断升级,高校对 AI 生成内容的审查标准也愈发严苛。曾经只需关注重复率的你,现在却要面对更复杂、更隐蔽的 AIGC 检测压力。…...

效率直接起飞 2026 最新!降AIGC工具测评与推荐

2026年真正好用的AI论文降重与改写工具,核心看降重效果、去AI味、格式保留、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 …...

如何快速掌握ElegantBook:面向初学者的LaTeX书籍排版终极指南

如何快速掌握ElegantBook:面向初学者的LaTeX书籍排版终极指南 【免费下载链接】ElegantBook Elegant LaTeX Template for Books 项目地址: https://gitcode.com/gh_mirrors/el/ElegantBook ElegantBook是一款专为学术书籍排版设计的优雅LaTeX模板&#xff0c…...

从CRUD到AI:普通程序员转型大模型应用开发指南(收藏版)

本文针对有3-5年Java、前端或PHP开发经验的程序员,探讨了如何转型AI大模型应用开发。文章指出,虽然表面看起来与现有工作不同,但CRUD经验反而是转型优势,如API调用、业务流程理解、数据库知识和调试能力等。转型只需掌握Python基础…...

通信对抗新利器:HWG1在铁路高速领域的卓越应用

在现代化交通体系中,铁路、高速等关键领域的通信安全至关重要。为了应对复杂多变的电磁环境,确保通信系统的稳定运行,成都鼎讯信通科技有限公司推出了通信信号干扰模拟器HWG1,为交通领域的通信对抗训练提供了强有力的支持。HWG1通…...

2026 年 AI 毕业论文工具横评:okbiye 领衔,9 款工具实测对比,帮你避开 90% 的写作坑

okbiye-免费查重复率aigc检测/开题报告/毕业论文/智能排版/文献综述/AI PPT毕业论文 - Okbiye智能写作https://www.okbiye.com/ai/bylw 一、前言:AI 写论文,别只盯着 “一键生成” 毕业论文写作,是每个大学生都绕不开的关卡。从选题定方向、…...

taotoken多模型聚合平台为matlab开发者提供稳定ai能力

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 taotoken多模型聚合平台为matlab开发者提供稳定ai能力 对于使用MATLAB进行数据分析、仿真建模或算法开发的工程师和研究人员而言&a…...

Unity接入海康UMP流全流程:签名认证、HTTP长连接与自定义渲染

1. 这不是简单的“拉流”,而是一场跨协议、跨权限、跨引擎的精准对接你有没有试过在Unity里直接填一个RTSP地址,比如rtsp://admin:123456192.168.1.64:554/Streaming/Channels/101,然后点播放——结果黑屏、报错、卡死,或者更糟&a…...

LNK2001 无法解析的外部符号 “public: static struct QMetaObject const UIDPrintPage::staticMetaObject“

排查一早上的问题,不知道设置哪里出了这个问题,突然提示无法生成Qt的元对象moc_对应的文件,所以这里查找问题根源,语法错误还是路径设置等问题。最终定位还是文件属性设置有问题,估计是改了那些设置吧,最终…...

VIVE Focus3 Unity开发避坑指南:JDK11.0.22与Wave SDK 4.2集成要点

1. 这不是SDK安装教程,而是新手在Focus3上摔的前七跤Unity新手刚拿到VIVE Focus3设备,满心欢喜点开VIVE Developer Portal下载SDK 4.2,解压、导入、Build、Run——然后卡在黑屏、报错、手势没反应、手柄漂移、甚至Unity编辑器直接崩溃。我带过…...

VIVE Focus3 Unity开发避坑指南:SDK 4.2与XR插件深度适配

1. 这不是SDK安装,而是给Unity项目“接上神经末梢” 刚拿到VIVE Focus3设备时,我把它连上电脑,打开Unity 2021.3.33f1(LTS版),照着官网文档点开Package Manager——结果卡在“Loading...”三分钟&#xff0…...

Unity AI工作流实战指南:从Editor到运行时的稳定集成

1. 这不是“AI插件合集”,而是Unity开发者真正用得上的智能工作流Unity开发者每天面对的,从来不是“要不要用AI”,而是“哪个AI功能能让我今天少改三遍材质球、少跑两次Build、少被美术追着问‘这个Shader为什么在iOS上黑一块’”。我做Unity…...

非科班本科,3年从零基础到AI工程师,我的真实转行之路(附避坑指南)

大家好,我是一名普通的非科班本科生,专业是机械制造及自动化,如今已经在AI行业深耕3年,成为了一名能独当一面的AI工程师,还参与过OpenClaw、DeerFlow等国际开源项目,算是真正从“AI小白”逆袭成了行业从业者。 写这篇文章,不是为了炫耀,而是因为我太懂那种“想转行AI却…...

Unity构建性能分析工具:四层数据采集与包体优化实战

1. 这不是又一个“构建日志查看器”,而是一把能切开Unity构建黑箱的手术刀 我第一次在客户项目里看到Build Report Tool时,它正安静地躺在一个被遗忘的Plugins文件夹里,名字叫 BuildReportTool_v2.3.1.unitypackage 。当时团队正为一个中型…...

FRED的光路和光路历史记录

对于杂散光分析,通常会使用“高级光线追迹”对话框,并选择“创建/使用光线历史文件”和“确定光路”选项。下面是对这两个选项的简要解释。确定光线路径选择此选项会使得FRED存储所有光路信息。这允许用户之后使用诊断工具,如光路追迹路径报告…...

cPanel认证安全机制与真实漏洞识别指南

我不能按照您的要求生成关于“CVE-2026-41940 cPanel认证绕过漏洞”的博文内容。 原因如下: 该CVE编号为虚构编号 : CVE编号遵循严格规则,由MITRE官方或授权CNAs(CVE Numbering Authorities)分配。截至2024年7月&a…...

用 jose 正确实现 JWT 签发、验签与密钥轮换

1. 为什么你写的 JWT 总是“看起来能用,上线就出事”JWT(JSON Web Token)这东西,我第一次在项目里用的时候,也是照着文档抄了三行代码:jwt.sign(payload, secret)、jwt.verify(token, secret)、res.json({ …...

Playwright Python3.7+安装失败根因与一次成功配置指南

1. 为什么Playwright在Python3.7环境下总“装不上”?——这不是你的pip问题,是环境认知偏差 你刚在新配的Mac M2上敲下 pip install playwright ,终端卡在 Building wheel for playwright... 十分钟不动;或者Windows上反复提示…...

LLM、Agent与Multi-Agent全面对比:优势、劣势与应用场景分析

引言大语言模型(Large Language Model,LLM)的出现,让机器具备了前所未有的语言理解和生成能力。然而,单纯的LLM就像一个博学但困在图书馆里的学者——它能回答问题、撰写文章,却无法主动采取行动。于是&…...

Appium环境搭建:Java/Node.js/ADB/Xcode可信三角验证指南

1. 为什么“Appium环境搭建”不是配置清单,而是项目生死线 很多人把Appium环境搭建当成一个“照着文档敲几行命令”的入门动作,甚至觉得“不就是装个Java、Android SDK、Node.js,再下个Appium Desktop点开就行?”——我去年带三个…...