降低服务器 CPU 使用率,核心思路是:先定位瓶颈 → 再针对性优化 → 最后做容量和架构层面的治理。下面按“排查 → 优化 → 架构”三层给你一套可落地的方法。
top
或更好用:
htop
看:
%us(用户态)%sy(系统态)%wa(IO 等待)top -Hp <pid>
可以看到高 CPU 的线程。
jstack <pid> > jstack.log
配合线程 ID(十六进制)看在干嘛。
iowait 高:不是 CPU 忙,是磁盘慢steal 高:被虚拟机抢资源vmstat 1 看 cs表现
解决
-Xms = -Xmx
解决
表现
%sy 高解决
表现
解决
表现
解决
SELECT *cpulimit -p <pid> -l 50
renice +10 -p <pid>
deploy:
resources:
limits:
cpus: "1.5"
| 现象 | 原因 | 动作 |
|---|---|---|
| 单核 100% | 死循环 | 查代码 |
| 多核都高 | 流量大 | 限流+缓存 |
| sy 高 | 锁/系统调用 | 优化并发 |
| wa 高 | IO 慢 | 换盘/优化DB |
| steal 高 | 虚机抢资源 | 换宿主机 |
如果你愿意,可以告诉我:
top 或监控截图我可以直接帮你精确定位到该改哪一行配置或代码。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。