1. 程式人生 > >伺服器 CPU使用率低 但是load高

伺服器 CPU使用率低 但是load高

等待磁碟IO完成的程序太多,導致等待佇列長度過大,體現load過高,但是cpu此時去執行別的任務或者空閒,所以會有CPU使用率低但是load高的情況。
主要有以下幾種情況:

1、磁碟讀寫操作太頻繁,導致大量IO等待

CPU的工作效率高於磁碟。
程序在CPU上執行要訪問磁碟檔案時,CPU會向核心去發起呼叫檔案的指令,讓核心去磁碟讀取檔案。
此時CPU去執行別的任務或者空閒。
這個程序就會變成不可中斷睡眠狀態,這種讀寫操作多了,就會有大量的不可中斷睡眠狀態的程序,導致load高。
優化方法:多使用cache

2、mysql 執行語句沒有命中索引

mysql資料儲存在磁碟上,查詢的時候會把磁碟上的資料載入到記憶體裡。當資料量很大,且查詢語句沒有命中索引時,就會造成掃描的行數過多致使IO阻塞,導致不可中斷睡眠狀態的執行緒越來越多,導致load高。
優化方法:show full processlist 檢視等待情況,kill掉等待過長的程序,對響應語句進行優化。