您好,登錄后才能下訂單哦!
本篇文章給大家分享的是有關如何進行解析linux IO,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
- 因為/proc/diskstats并未把隊列等待時間和硬盤處理時間分開,所以凡是以它為基礎的工具都不可能分別提供disk service time以及queue有關的值
- iostat是以/proc/diskstats為基礎計算出來的,
- 每個I/O的平均耗時是用await表示的,但它不能反映硬盤設備的性能,因為await不僅包括硬盤設備處理I/O的時間,還包括了在隊列中等待的時
- %util:該硬盤設備的繁忙比率=[Δio_ticks/Δt],表示該設備有I/O(即非空閑)的時間比率,不考慮I/O有多少,只考慮有沒有。太高可能都是順序IO
- %iowait 表示在一個采樣周期內有百分之幾的時間屬于以下情況:CPU空閑、并且有仍未完成的I/O請求
pidstat 計算進程單位時間內的增量
iotop 觀察進程的動態I/O
使用blktrace需要掛載debugfs:
$ mount -t debugfs debugfs /sys/kernel/debug
利用blktrace把數據記錄在文件里,缺省的輸出文件名是 sdb.blktrace.<cpu>,每個CPU對應一個文件。你也可以用-o參數指定自己的輸出文件名。
$ blktrace -d /dev/sdb
利用btt分析blktrace數據。btt是對blktrace數據進行自動分析的工具。
btt不能分析實時數據,只能對blktrace保存的數據文件進行分析。使用方法:
把原本按CPU分別保存的文件合并成一個,合并后的文件名為sdb.blktrace.bin:
$ blkparse -i sdb -d sdb.blktrace.bin
執行btt對sdb.blktrace.bin進行分析:
$ btt -i sdb.blktrace.bin
我們看到93.7461%的時間消耗在D2C,也就是硬件層,這是正常的,我們說過D2C是衡量硬件性能的指標,
這里單個IO平均0.129201毫秒,已經是相當快了,單個IO最慢14.246176 毫秒,不算壞。Q2G和G2I都很小,完全正常。
I2D稍微有點大,應該是cfq scheduler的調度策略造成的,你可以試試其它scheduler,比如deadline,比較兩者的差異,然后選擇最適合你應用特點的那個。
以上就是如何進行解析linux IO,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。