EBS ボリュームをテストして、宣伝されている速度を達成する方法を見つけようとしています。Amazon によると、io1 ボリュームは 16K で 1000MBps または 64,000 IOPS を実現できるとのことです。600MBps を超える速度は見られません。これは、1280GB および 64000 IOPS にプロビジョニングされたボリュームを持つ m5n.2xlarge インスタンス (Nitro カード付き) です。
でゼロを書き込むとdd
、iostat
一貫して 100% の使用率が表示されます。
Device: rrqm/s wrqm/s r/s w/s rMB/s wMB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
nvme1n1 0.00 0.00 0.00 2284.00 0.00 571.00 512.00 15.36 7.19 0.00 7.19 0.44 100.00
parted で最適に調整されたパーティションで XFS ファイルシステムを使用しようとしました。また、ブロック デバイス nvme1n1 に直接 dd 書き込みを試しました。どちらの方法でもパフォーマンスはほぼ同じです。
このテストでは、1MB のブロック サイズを使用して dd で書き込みます。
# dd if=/dev/zero of=/mnt/data/testfile bs=1M
私が理解できないのは、4K ブロックを書き込むとほぼ同じ結果が得られる理由です。
Device: rrqm/s wrqm/s r/s w/s rMB/s wMB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
nvme1n1 0.00 0.00 0.00 2284.00 0.00 571.00 512.00 15.02 7.02 0.00 7.02 0.44 100.00
答え1
dd if=/dev/zero of=/mnt/data/testfile bs=1
Linux を使ってからしばらく経ちますが、bs 引数がバイト単位であることは 99% 確信しています。つまり、1MB ではなく 1 バイトのブロック サイズを送信していると思います。
代わりにこれを試してください: