谁在消耗cpu?耗过何优化 用户+系统+IO等待+软硬中断+空闲 祸首是谁? 用户 用户空间CPU消耗,各种逻辑运算 正在进行大量tps 函数/排序/类型转化/逻辑IO访问... 用户空间消耗大量cpu,耗过何优化产生的耗过何优化系统调用是什么?那些函数使用了cpu周期? IO等待 等待IO请求的完成 此时CPU实际上空闲 如vmstat中的wa 很高。但IO等待增加,耗过何优化wa也不一定会上升(请求I/O后等待响应,耗过何优化但进程从核上移开了) 产生影响 用户和IO等待消耗了大部分cpu 如何减少CPU消耗?耗过何优化 减少等待 减少IO量 SQL/index,使用合适的耗过何优化索引减少扫描的行数(需平衡索引的正收益和维护开销,空间换时间) 提升IO处理能力 加cache/加磁盘/SSD 减少计算 减少逻辑运算量 如substr等字符运算,dateadd/datesub等日期运算,耗过何优化abs等数学函数 如union all代替 union,耗过何优化order by 索引字段等 如数字用tiny/int/bigint等,耗过何优化必需转换的在传入数据库之前在应用中转好 减少逻辑IO量 如增加索引,调整组合索引字段顺序,去除选择性很差的索引字段等等 如将很少使用的大字段拆分到独立表,非常频繁的小字段冗余到“引用表” 如减少复杂join,减少order by,尽量union all,避免子查询等 如tinyint够用就别总是int,亿华云计算int够用也别老bigint,date够用也别总是timestamp 减少query请求量(非数据库本身) 如用户信息,商品信息等 如禁止同一页面多次重复请求相同数据的问题,通过跨页面参数传递减少访问等 升级cpu