Nvme

是什麼讓 NVMe SSD 的 Fio 基準測試中的完成延遲各不相同?

  • September 13, 2020

我正在嘗試使用 NVMe SSD 計算 fio 基準測試的完成延遲。

我製作了以下 fio 腳本來測試 fio 中的基準。

我使用了以下選項。

rw=read, ioengine=sync, direct=1

所以,我認為沒有太多事情可以使完成時間不同。

然而,結果並不是我想的那樣。

在此處輸入圖像描述

結果是 1th : 11us 到 99.99th : 111 us。

同步讀取不會產生未完成的 IO,因此所有 I/O 都按順序處理,

而直接選項可以繞過作業系統中的緩衝區。

我認為大多數延遲是相同的。

對這個結果有什麼想法嗎?

您在這裡談論的是微秒和 11 微秒與 111 微秒。擾亂如此敏感的閱讀並不需要太多:

  • fio 程序關閉 CPU,因為您的伺服器決定是時候執行定期 cron 作業並且無法像其他 I/O 那樣快速處理某些 I/O
  • 一些 I/O 位於某種 SSD 記憶體中,但後來 I/O 實際上必須從記憶體外部獲取
  • 某些 I/O 讀取碰巧以不同的順序寫入,然後再讀回(是的,按寫入順序讀回對 SSD 來說更好)
  • 其他東西決定 I/O 到同一設備

等等

您沒有包括完整的工作(我可以看到您設置iodepth=16了這讓我想知道您在工作中設置了哪些其他內容),因此您對任何答案的要求都很高。但是我要指出,您 95% 的讀數都在 3微秒內,因此您不會在不到 100 萬個 I/O 中看到很多異常值。您期望從非實時系統中獲得多少確定性?

引用自:https://unix.stackexchange.com/questions/608147