今天聽到看部門同事有遇到IO過高的問題 , 簡單的查詢了下
iostat命令:
%user:CPU處在用戶模式下的時間百分比,
%nice:CPU處在帶NICE值的用戶模式下的時間百分比,
%system:CPU處在系統模式下的時間百分比,
%iowait:CPU等待輸入輸出完成時間的百分比,
%steal:管理程式維護另一個虛擬處理器時,虛擬CPU的無意識等待時間百分比,
%idle:CPU空閑時間百分比,
如果%iowait的值過高,表示硬碟存在I/O瓶頸
如果%idle值高,表示CPU較空閑
如果%idle值高但系統回應慢時,可能是CPU等待分配記憶體,應加大記憶體容量,
如果%idle值持續低于10,表明CPU處理能力相對較低,系統中最需要解決的資源是CPU,
作業機制
當應用程式需要讀取檔案中的資料時,作業系統先分配一些記憶體,將資料從存盤設備讀入到這些記憶體中,然后再將資料分發給應用程式;當需要往檔案中寫資料時,作業系統先分配記憶體接收用戶資料,然后再將資料從記憶體寫到磁盤上,
對于每個檔案的第一個讀請求,系統讀入所請求的頁面并讀入緊隨其后的少數幾個頁面(不少于一個頁面,通常是三個頁面),這時的預讀稱為同步預讀,
如果應用程式接下來是順序讀取的話,那么檔案 cache 命中,OS 會加大同步預讀的范圍,增強快取效率,此時的預讀被稱為異步預讀
如果接下來 cache 沒命中,那么 OS 會繼續使用同步預讀,
因此基本思路就是:
盡量避免磁盤的隨機IO , 盡量利用磁盤預讀快取 , 利用區域性原理
盡可能地順序讀寫一個檔案
單行程讀寫硬碟
避免對大目錄操作
把小檔案的讀寫轉換為大檔案的寫
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/233346.html
標籤:其他
下一篇:CentOS7.3鏡像下載
