用戶+系統+IO等待+軟硬中斷+空閒
用戶空間CPU消耗,各種邏輯運算
用戶空間消耗大量cpu,產生的系統調用是什麼?那些函數使用了cpu週期?
等待IO請求的完成
如vmstat中的wa 很高。但IO等待增加,wa也不一定會上升(請求I/O後等待響應,但進程從核上移開了)
用戶和IO等待消耗了大部分cpu
吞吐量下降(tps)
減少IO量
SQL/index,使用合適的索引減少掃描的行數(需平衡索引的正收益和維護開銷,空間換時間)
提升IO處理能力
避免使用函數,將運算轉移至易擴展的應用服務器中
如substr等字符運算,dateadd/datesub等日期運算,abs等數學函數
減少排序,利用索引取得有序數據或避免不必要排序
如union all代替 union,order by 索引字段等
禁止類型轉換,使用合適類型並保證傳入參數類型與數據庫字段類型絕對一致
如數字用tiny/int/bigint等,必需轉換的在傳入數據庫之前在應用中轉好
簡單類型,儘量避免複雜類型,降低由於複雜類型帶來的附加運算。更小的數據類型佔用更少的磁盤、內存、cpu緩存和cpu週期
....