ddハードディスク(HDD)のパフォーマンスをテスト
2480 ワード
以下、よくあるDDコマンドを直接紹介し、まず彼の違いを見てみましょう.
この4つのDDコマンドの違いは、メモリ内の書き込みキャッシュの処理方法です.
1.
パラメータは追加されず、ddのデフォルトの方法には「同期(sync)」コマンドは含まれません.すなわちddコマンドが完了するまで、システムにファイルをディスクに書かせなかった.したがって、以上のコマンドは、単に128 MBのデータをメモリバッファに読み出すだけである(ライトキャッシュ[write cache]).だからあなたが得たのは超速いスピードです.実はddがあなたにあげたのは読み取り速度だけなので、ddが完成してからシステムは本当にディスクにデータを書き始めましたが、この速度は見えません.だからこのスピードが速ければ、何の役にも立たない.
実際の実行結果:
2.
前の1と全く同じです.セミコロンで区切られたのは、前後2つの独立した命令にすぎない.syncコマンドがディスクへのデータの書き込みを開始する準備をしている間に、前のddコマンドはエラーの「書き込み速度」値を画面に表示しました.実際の書き込み速度は得られません
実際の実行結果:
3.
このパラメータを追加すると、ddコマンドは最後に「同期(sync)」操作を本当に実行するので、128 Mのデータをメモリに読み込み、ディスクに書き込むのに要する時間が得られ、実際の使用結果に合致します.
実際の実行結果:
4.
このパラメータを加えるとddは実行時に毎回同期書き込み操作を行う.すなわち、このコマンドは、64 kを読み出すたびに、まずこの64 kをディスクに書き込み、次に次の64 kを読み出して128回繰り返します.これは、書き込みキャッシュ(write cache)がほとんど使われていないため、最も遅い方法かもしれません.
実際の実行結果:
一般的に、第4の方法は最も厳格で、データベースの挿入操作をシミュレートすることができるので、遅いです.vpsハードディスクの性能基準をテストするためのベンチマークでもあります.一般的にテスト結果は、10 Mを超えると、正常なステーションに影響しません.50 Mを超えると、非常にパワフルな状態で、このvpsハードディスクの性能が非常によく、DD速度は78.9 MB/sに達しました.
これらのコマンドでは、bs=64 kは同時読み込み/出力のブロックサイズが64 kバイトであることを示し、count=4 kはコピーブロックの個数が4000個であることを示し、さらに厳密にテストすれば、1 Gデータ量のDDを実行する.
ここまで书いて、私はDDコマンドを利用してハードディスクをテストするのはとても明らかだと思います.通常、私たちは4番目のコマンドをテストすればいいです.もちろん、DDが速ければ速いほど、サーバーの性能の良し悪しを代表することはできません.普通のハードディスクのサーバーはDDコマンドを実行した结果は30 Mぐらいでいいです.
dd if=/dev/zero of=test bs=64K count=1
dd if=/dev/zero of=test bs=64K count=1; sync
dd if=/dev/zero of=test bs=64K count=1 conv=fdatasync
dd if=/dev/zero of=test bs=64K count=1 oflag=dsync
この4つのDDコマンドの違いは、メモリ内の書き込みキャッシュの処理方法です.
1.
dd if=/dev/zero of=test bs=64K count=1
パラメータは追加されず、ddのデフォルトの方法には「同期(sync)」コマンドは含まれません.すなわちddコマンドが完了するまで、システムにファイルをディスクに書かせなかった.したがって、以上のコマンドは、単に128 MBのデータをメモリバッファに読み出すだけである(ライトキャッシュ[write cache]).だからあなたが得たのは超速いスピードです.実はddがあなたにあげたのは読み取り速度だけなので、ddが完成してからシステムは本当にディスクにデータを書き始めましたが、この速度は見えません.だからこのスピードが速ければ、何の役にも立たない.
実際の実行結果:
1+0
1+0
104857600 (105 MB) ,2.00737 ,52.2 MB/
2.
dd if=/dev/zero of=test bs=64K count=1; sync
前の1と全く同じです.セミコロンで区切られたのは、前後2つの独立した命令にすぎない.syncコマンドがディスクへのデータの書き込みを開始する準備をしている間に、前のddコマンドはエラーの「書き込み速度」値を画面に表示しました.実際の書き込み速度は得られません
実際の実行結果:
1+0
1+0
104857600 (105 MB) ,2.06546 ,50.8 MB/
3.
dd if=/dev/zero of=test bs=64K count=1 conv=fdatasync
このパラメータを追加すると、ddコマンドは最後に「同期(sync)」操作を本当に実行するので、128 Mのデータをメモリに読み込み、ディスクに書き込むのに要する時間が得られ、実際の使用結果に合致します.
実際の実行結果:
1+0
1+0
104857600 (105 MB) ,2.59843 ,40.4 MB/
4.
dd if=/dev/zero of=test bs=64K count=1 oflag=dsync
このパラメータを加えるとddは実行時に毎回同期書き込み操作を行う.すなわち、このコマンドは、64 kを読み出すたびに、まずこの64 kをディスクに書き込み、次に次の64 kを読み出して128回繰り返します.これは、書き込みキャッシュ(write cache)がほとんど使われていないため、最も遅い方法かもしれません.
実際の実行結果:
1+0
1+0
104857600 (105 MB) ,2.0844 ,50.3 MB/
一般的に、第4の方法は最も厳格で、データベースの挿入操作をシミュレートすることができるので、遅いです.vpsハードディスクの性能基準をテストするためのベンチマークでもあります.一般的にテスト結果は、10 Mを超えると、正常なステーションに影響しません.50 Mを超えると、非常にパワフルな状態で、このvpsハードディスクの性能が非常によく、DD速度は78.9 MB/sに達しました.
これらのコマンドでは、bs=64 kは同時読み込み/出力のブロックサイズが64 kバイトであることを示し、count=4 kはコピーブロックの個数が4000個であることを示し、さらに厳密にテストすれば、1 Gデータ量のDDを実行する.
dd if=/dev/zero of=test1 bs=64k count=16k oflag=dsync
64k , 16k , :
16384+0
16384+0
1073741824 (1.1 GB) ,125.424 ,8.6 MB/
#
# vps
[root@166087 ~]# dd if=/dev/zero of=test1 bs=64k count=16k oflag=dsync
16384+0
16384+0
1073741824 (1.1 GB) ,15.0148 ,71.5 MB/
ここまで书いて、私はDDコマンドを利用してハードディスクをテストするのはとても明らかだと思います.通常、私たちは4番目のコマンドをテストすればいいです.もちろん、DDが速ければ速いほど、サーバーの性能の良し悪しを代表することはできません.普通のハードディスクのサーバーはDDコマンドを実行した结果は30 Mぐらいでいいです.