数据库
首页 > 数据库> > MySQL 导致 CPU 消耗过大,如何优化

MySQL 导致 CPU 消耗过大,如何优化

作者:互联网

MySQL 导致 CPU 消耗过大,如何优化


de985775672b9511d2aa87a14f653d18.jpeg


谁在消耗cpu?

用户+系统+IO等待+软硬中断+空闲

d8483dcfd624a61b90cc624345acef20.jpeg



0e04fdcbb429e7446b2f6b1b6572cb16.jpeg


祸首是谁?

用户

用户空间CPU消耗,各种逻辑运算

正在进行大量tps
函数/排序/类型转化/逻辑IO访问…

IO等待

等待IO请求的完成

此时CPU实际上空闲
如vmstat中的wa 很高。但IO等待增加,wa也不一定会上升(请求I/O后等待响应,但进程从核上移开了)


991b81d2a59fc858cc1e73cfd890d94b.jpeg



928b415c52ec502ef86f58b669da8b6f.jpeg


产生影响

用户和IO等待消耗了大部分cpu

如何减少CPU消耗?

减少等待

减少IO量

SQL/index,使用合适的索引减少扫描的行数(需平衡索引的正收益和维护开销,空间换时间)

提升IO处理能力

加cache/加磁盘/SSD

571df70db3a34336ec4918958b1372cc.jpeg


减少计算

减少逻辑运算量

减少逻辑IO量


294b7fd399782c9bc2369103db6ba23c.jpeg


减少query请求量(非数据库本身)


39d50e32fa836b025df14192fd06553c.jpeg


升级cpu



标签:CPU,过大,索引,IO,MySQL,等待,cpu,减少
来源: https://blog.51cto.com/15050718/2633292