NVMe SSDのFioベンチマークで完了遅延時間が異なる原因は何ですか?

NVMe SSDのFioベンチマークで完了遅延時間が異なる原因は何ですか?

NVMe SSDのfioベンチマークの完了待ち時間を計算しようとしています。

fioでベンチマークをテストするために、次のfioスクリプトを作成しました。

次のオプションを使用しました。

rw=read, ioengine=sync, direct=1

それで、仕上げ時間に変化をもたらすことができるものはあまりないと思います。

しかし、結果は私が期待したものとは異なりました。

ここに画像の説明を入力してください。

結果は1番目:11us〜99.99番目:111usです。

同期読み取りは優れたIOを生成しないため、すべてのI / Oが順次処理されます。

direct オプションはオペレーティングシステムのバッファをバイパスします。

ほとんどの遅延は同じだと思います。

この結果についてどう思いますか?

答え1

あなたが言うことマイクロこれには秒、11マイクロ秒、111マイクロ秒があります。このように敏感な内容を読むのには時間がかかりません。

  • サーバーが通常のクローン操作を実行する必要があるときと考え、一部のI / Oを他のプロセスと同じくらい迅速に処理できないため、fioプロセスはCPUリソースを大量に使用しています。
  • 一部の I/O は一種の SSD キャッシュにありますが、後で I/O は実際にキャッシュの外部から取得する必要があります。
  • 一部のI / O読み取りは異なる順序で書き込まれ、再び読み取られます(たとえば、作成された順序で再読み込みするのがSSDの場合は優れています)。
  • 他の要因によって、同じデバイスのI / Oが決定されます。

など。

あなたは完全な仕事を含んでいないので(仕事で何を設定したのか疑問に思うように設定したことがわかりますiodepth=16)、答えにはあまりにも多くのことが必要です。しかし、私は読書の95%が3以内にあることを指摘したいと思います。マイクロ互いに数秒間隔であるため、100万未満のI / Oでは異常値があまり表示されません。非リアルタイムシステムがどれほど決定的だと思いますか?

関連情報