ddハードディスク(HDD)のパフォーマンスをテスト

2480 ワード

以下、よくあるDDコマンドを直接紹介し、まず彼の違いを見てみましょう.
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ぐらいでいいです.