
我目前正在執行各種開發任務,由於 IO 效能的原因,這些任務在我目前的系統上速度很慢。
有沒有辦法在執行 IO 消耗任務時記錄磁碟操作,包括效能資訊(寫入/秒、讀取/秒等),然後在新系統上重播它們以查看效能狀況(無需對同一組資料重新執行相同的命令)?
會區塊追蹤,區塊解析或者菲奧在這種情況下幫助我嗎?
例如:假設在我的系統上我想對一個
find -name "*.php" | xargs grep -r "test_string"
在包含 50 000 個檔案的資料夾中(當然是多個層級)
我想捕獲所有磁碟操作,包括統計信息,然後在另一個沒有 50 000 個資料夾的系統上重播它們。基本上,只是模擬操作並檢查它們是否完成得更快。
我嘗試使用捕獲磁碟樣本
blktrace -d /dev/sda -o myfile.blk
但我不知道如何嘗試重播它們菲奧。
這可能嗎?
謝謝
答案1
不可以。
如果您想模擬該任務,那麼除了嘗試讀取/寫入相同的磁碟區之外,您還需要想出一種方法來模擬讀取資料後任務對資料所做的任何工作。
答案2
要使用 fio 播放blktrace
文件,您需要先將其轉換為blkparse
二進位資料檔案 - 請參閱菲奧的read_iolog
選擇了解更多 (replay_redirect
也可能有用)。
筆記:使用 fio 重新運行包含寫入的重播 破壞重播的檔案/磁碟中的數據所以要小心!