在介紹磁碟 i/o 監控命令前,我們需要了解磁碟 i/o 效能監控的指標,以及每個指標的所揭示的磁碟某方面的效能。磁碟 i/o 效能監控的指標主要包括:
對於磁碟來說,一次磁碟的連續讀或者連續寫稱為一次磁碟 i/o, 磁碟的 iops 就是每秒磁碟連續讀次數和連續寫次數之和。當傳輸小塊不連續資料時,該指標有重要參考意義。
指硬碟傳輸資料流的速度,傳輸資料為讀出資料和寫入資料的和。其單位一般為 kbps, mb/s 等。當傳輸大塊不連續資料的資料,該指標有重要參考作用。
平均 i/o 資料尺寸為吞吐量除以 i/o 數目,該指針對揭示磁碟使用模式有重要意義。一般來說,如果平均 i/o 資料尺寸小於 32k,可認為磁碟使用模式以隨機訪問為主;如果平均每次 i/o 資料尺寸大於 32k,可認為磁碟使用模式以順序訪問為主。
磁碟處於活動時間的百分比,即磁碟利用率,磁碟在資料傳輸和處理命令(如尋道)處於活動狀態。磁碟利用率與資源爭用程度成正比,與效能成反比。也就是說磁碟利用率越高,資源爭用就越嚴重,效能也就越差,響應時間就越長。一般來說,如果磁碟利用率超過 70%,應用程序將花費較長的時間等待 i/o完成,因為絕大多數程序在等待過程中將被阻塞或休眠。
指磁碟讀或寫操作執行的時間,包括尋道,旋轉時延,和資料傳輸等時間。其大小一般和磁碟效能有關,cpu/ 記憶體的負荷也會對其有影響,請求過多也會間接導致服務時間的增加。如果該值持續超過 20ms,一般可考慮會對上層應用產生影響。
指待處理的 i/o 請求的數目,如果 i/o 請求壓力持續超出磁碟處理能力,該值將增加。如果單塊磁碟的佇列長度持續超過 2,一般認為該磁碟存在i/o效能問題。需要注意的是,如果該磁碟為磁碟陣列虛擬的邏輯驅動器,需要再將該值除以組成這個邏輯驅動器的實際物理磁碟數目,以獲得平均單塊硬碟的i/o 等待佇列長度。
指磁碟讀或寫操作等待執行的時間,即在佇列中排隊的時間。如果 i/o 請求持續超出磁碟處理能力,意味著來不及處理的 i/o 請求不得不在佇列中等待較長時間。
通過監控以上指標,並將這些指標數值與歷史資料,經驗資料以及磁碟標稱值對比,必要時結合 cpu、記憶體、交換分割槽的使用狀況,不難發現磁碟 i/o潛在或已經出現的問題。但如果避免和解決這些問題呢?這就需要利用到磁碟 i/o效能優化方面的知識和技術。限於本文主題和篇幅,僅列出一些常用的優化方法供讀者參考:
1.調整資料布局,盡量將 i/o 請求較合理的分配到所有物理磁碟中。
2.對於 raid 磁碟陣列,盡量使應用程式 i/o 等於條帶尺寸或者為條帶尺寸的倍數。並選取合適的 raid 方式,如 raid10,raid5。
3.增大磁碟驅動程式的佇列深度,但不要超過磁碟的處理能力,否則,部分 i/o 請求會因為丟失而重新發出,這將降低效能。
4.應用快取技術減少應用訪問磁碟的次數,快取技術可應用在檔案系統級別或者應用程式級別。
5.由於多數資料庫中已包括經優化後的快取技術,資料庫 i/o 宜直接訪問原始磁碟分割槽(raw partition)或者利用繞過檔案系統快取的 dio 技術(direct io)
6.利用記憶體讀寫頻寬遠比直接磁碟 i/o 操作效能優越的特點,將頻繁訪問的檔案或資料置於記憶體中。
zabbix3 2監控linux磁碟IO
我這裡主要是通過分析 proc diskstats檔案,來對io的效能進行監控。客戶端配置 1 編輯zabbix配置檔案,新新增乙個配置檔案userparameter disk.conf vi etc zabbix zabbix agentd.d userparameter disk.conf un...
zabbix3 2監控linux磁碟IO
我這裡主要是通過分析 proc diskstats檔案,來對io的效能進行監控。客戶端配置 1 編輯zabbix配置檔案,新新增乙個配置檔案userparameter disk.conf vi etc zabbix zabbix agentd.d userparameter disk.conf un...
zabbix4 0新增磁碟io監控
1.設定zabbix agent端的配置檔案 找到agent端配置檔案的位置,本例agent端的配置檔案路徑在 usr local etc zabbix下 首先 在主配置檔案 zabbix agentd.conf 中指定agent端監控指令碼的存放路徑 然後 在將監控指令碼放到指定位置,監控io的指...