谁消耗了我的cpu?
谁在消耗cpu?
用户空间CPU消耗,各种逻辑运算
❝正在进行大量tps 函数/排序/类型转化/逻辑IO访问… ❞
用户空间消耗大量cpu,产生的系统调用是什么?那些函数使用了cpu周期?
等待IO请求的完成
❝此时CPU实际上空闲 ❞
如vmstat中的wa 很高。但IO等待增加,wa也不一定会上升(请求I/O后等待响应,但进程从核上移开了)
磁盘
vmstat
用户和 IO 等待消耗了大部分 cpu。
IO等待消耗了大部分cpu
「减少IO量」
SQL/index,使用合适的索引减少扫描的行数(需平衡索引的正收益和维护开销,空间换时间)
「提升IO处理能力」
加cache/加磁盘/SSD
如何减少CPU消耗?
「减少逻辑运算量」
减少计算
「减少逻辑IO量」
减少逻辑IO量
「减少query请求量(非数据库本身」)
「升级cpu」若经过减少计算和减少等待后还不能满足需求,cpu利用率还高T_T 是时候拿出最后的杀手锏了,升级cpu,是选择更快的cpu还是更多的cpu了?