パススルーデバイスマッパーの予想されるオーバーヘッドはいくらですか?

パススルーデバイスマッパーの予想されるオーバーヘッドはいくらですか?

パススルーデバイスマッパー、つまり何もしないデバイスマッパーのデフォルトスループットオーバーヘッドを設定しようとしています。ベンチマーク手順に概ね従います。Cloudflareから、おおよそ測定してみましたスループットを30%削減Ubuntu 20.04 LTSおよび22.04 LTSを使用してAzure VM、GCP VM、およびネイティブメタルシステムで実行されているRAMディスクの直接I / Oの代わりに、RAMディスクでパススルーデバイスマッパーを使用するには、fioを使用します。

これが期待されるか。

RAMディスクを介してデバイス全体で約1000 + MB / sを取得し、600 + MB / sのパススルーを取得します。

私の結果を複製したい人のために、私の設定は次のとおりです。

  1. Ubuntu 20.04または22.04 VMを作成するか、そのマシンにアクセスしてください。カーネルモジュールをロードできるように、セキュアブートをオフにします。
  2. 4GBのRAMディスクを作成します。sudo modprobe brd rd_nr=1 rd_size=4194304
  3. Fioをインストールします。sudo apt install -y fio
  4. RAMディスクでfioを実行します。sudo fio --filename=/dev/ram0 --readwrite=readwrite --bs=4k --direct=1 --loops=20 --name=plain
  5. 出力の下部に読み取り/書き込みスループットを記録しますaggrb=?MB/s。これがベースラインです。

パススルーデバイスマッパーの場合は、「遅延」デバイスマッパーを使用してください。これは次のために発生します。ユンヤオ:

  1. パススルーデバイスマッパーを設定します。echo '0 8388608 delay /dev/ram0 0 0' | sudo dmsetup create plain
  2. fioを実行してください:sudo fio --filename=/dev/mapper/plain --readwrite=readwrite --bs=4k --direct=1 --loops=20 --name=plain
  3. スループットも同様に記録されます。

あるいは、レイテンシがゼロの「待機時間」デバイスマッパーのパフォーマンスの低下が疑われる場合は、パススルーデバイスの実装を使用できます。ここ。これら2つのファイルをダウンロードしてくださいここ、カーネルモジュールをコンパイルしてロードします。

  1. 走るmake
  2. モジュールのロード:sudo insmod passthrough.ko
  3. デバイスマッパーをロードします。echo "0 `sudo blockdev --getsz /dev/ram0` passthrough /dev/ram0" | sudo dmsetup create passthrough
  4. fioを実行してください:sudo fio --filename=/dev/mapper/passthrough --readwrite=readwrite --bs=4k --direct=1 --loops=20 --name=passthrough
  5. スループットも同様に記録されます。

関連情報