压测时CPU占比高,怎么分析?
性能测试过程中,发现CPU的占比一直很高,要怎么分析呢?
1、用户 CPU 和 Nice CPU 高,说明用户态进程占用了较多的 CPU,所以应该着重排查进程的性能问题
2、系统 CPU 高,说明内核态占用了较多的 CPU,所以应该着重排查内核线程或者系统调用的性能问题
3、I/O 等待 CPU 高,说明等待 I/O 的时间比较长,所以应该着重排查系统存储是不是出现了 I/O 问题
4、软中断和硬中断高,说明软中断或硬中断的处理程序占用了较多的 CPU,所以应该着重排查内核中的中断服务程序
碰到 CPU 使用率升高的问题,你可以借助 top、pidstat 等工具,确认引发 CPU 性能问题的来源;
再使用 perf 等工具,排查出引起性能问题的具体函数或算法。
还可以用vmstat命令,查看具体表现:
vmstat 2 5 这个参数的含义:每隔 2 秒运行一次并在第 5次运行后停止
主要看下面的数据
1、in,cs 显示了系统相关活动:
-in 系统每秒接收到的中断数
-cs 在进程空间中切换上下文的速率(以数量/秒为单位)
这两个值越大说明由内核消耗的CPU越多。
2、us,sy,id,wa 显示了 CPU 负载的信息:
-us 显示花费在用户进程中的 CPU 百分比。(如果长期大于50%就要考虑优化程序或者算法)
-sy 系统进程(如所有根进程)使用的 CPU 百分比 (如果该值较大说明内核消耗的cpu资源较多,存在较大上下文切换及磁盘I/O等待,us+sy应该小于80%,如果大于80%说明cpu存在瓶颈)
-id 可用 CPU 百分比
-wa 花费在“等待 I/O”上的百分比
越努力,越幸运!
转载请注明出处,商用需征得作者同意,谢谢!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?