2017-03-08 67 views
1

,我最熟悉的FIO延遲Vs的的Btt在BTT結果的情況下,延遲

  • Q2D延遲 - 從請求提交到設備的時間
  • D2C延遲 - 用於處理請求
  • Q2C延遲設備延遲 - 總延遲,Q2D + D2C = Q2C

我需要幫助通過比較與FIO工具的Btt報告延遲。 在FIO結果有

  • 提交延遲或板條
  • 完成延遲或CLAT
  • 的總延遲時間或FIO結果LAT

我讀過幾篇文章,但它仍然沒有結晶向我清楚板條,扣板和拉特是什麼意思?

如果磁盤延遲較高或請求排隊等待時間較長,FIO結果能夠提供見解嗎?

是在FIO中報告的「Slat」或「Clat」或「lat」,與Q2D,C2D或Q2C直接比較?

可能這兩個工具是不能直接比較的,在這種情況下你能解釋爲什麼?

感謝

回答

0

這大量依賴於使用ioengine以及是否使用direct=1提交I/O。假設--ioengine=libaio --direct=1

  • 板條大致是Q2D。
  • clat大致是D2C。
  • lat大致爲Q2C。

你因爲同步ioengines從提交阻塞,直到I/O完成(見的http://fio.readthedocs.io/en/latest/fio_doc.html#interpreting-the-output板條部),而異步ioengines可以從接收到通知該I/O完成分別提交需要異步ioengine。您需要direct=1,因爲沒有它,您的I/O將進入Linux頁面緩存,甚至可能不是異步的(即使ioengine是異步的!) - 詳細信息請參閱http://fio.readthedocs.io/en/latest/fio_doc.html#cmdoption-arg-ioengine的libaio部分。

另外請記住,您不知道fio提交後,塊圖層將對I/O執行什麼操作。在某些情況下,它可能會選擇將I/O合併在一起(例如,I/O是連續的並且一起到達足夠近)或將它們分開(例如,如果它們對於設備來說太大)會破壞fio之間的任何一對一對應關係值和btt值。

fio數字可能會大於btt的數字,因爲fio運行在更高的級別(用戶空間),因此數據還會繼續傳播。