序文
ビッグデータの時代を背景に、データストレージは現在解決すべき課題となっています。大手メーカーは、Huawei、Tencent、Baiduなどの独自のストレージシステムを立ち上げていますが、クラウドサービス、クラウドホスティング、その他のアッパーを備えています。レベルのアプリケーション製品ですが、それでも最下層で自分で設計したストレージ管理システムが必要です。
この記事では、ディスクパフォーマンステストツールの使用とストレージシステムのスクリプトの記述について説明します。
前回の記事では、Fioツールの使用についてすでに説明しました。学習したい場合は、私のブログを参照してください。
https://blog.csdn.net/u013521274/article/details/107949362
今日は、別のツールであるvdbenchの使用について学習します。Vdbenchはfioに似たツールですが、fioとは少し異なります。
たとえば、次の図に示すように、fioには読み取りと書き込みの2つのモードがありますが、vdbenchには3つのモードがあります。
Vdbenchには、Fioよりも1つ多くのモード、createがあります。これは、ファイルを作成することを意味します。通常のロジックでは、ファイルの作成後に書き込む必要があります。ただし、ファイルが大きく、ファイルの書き込みに時間がかかる場合は、ファイルを作成することは無視できます。
したがって、vdbenchの作成モードを使用すると、多数の小さなファイルを作成できます。小さなファイルの作成には、書き込み(書き込み)ではなく作成(作成)に時間がかかるため、vdbenchは小さなファイルの大きなバッチ用です。タスクはfioよりも優れています。
1.Centos7へのvdbenchツールのインストール
1.1Java環境を準備する
fioとは異なり、fioはc ++環境に依存していますが、vdbenchはJava環境に依存しています。centos7にJavaをインストールするためのチュートリアルはすでにあります。私のブログを参照してください。
https://blog.csdn.net/u013521274/article/details/109539711
1.2vdbenchをインストールします
vdbenchパッケージをダウンロードします。このパッケージはLinuxとWindowsに共通しているようです。私のリソースからダウンロードできます。
https://download.csdn.net/download/u013521274/14915064
ダウンロードが完了したら、winscpまたはxftpを介してLinuxディレクトリにアップロードします。
次に、コマンドを解凍して実行します
tar -zxvf vdbench50406.zip
或者
unzip vdbench50406.zip
上の図で解凍されたディレクトリを見ることができます。
次に、cdコマンドを使用して解凍ディレクトリに入ります
lsビュー
次のコマンドを実行して、テストvdbenchの可用性を確認します。
./vdbench -t
以下の条件が発生した場合は、利用可能であることを意味します。
2.vdbenchの使用
Vdbenchはパフォーマンステストに使用されます。fioとは異なり、fioをインストールした後は、スクリプトを記述した後、どこでもスクリプトを実行できます。
ただし、スクリプトがvdbenchで記述されている場合でも、インストールディレクトリで実行する必要があるため、あまり便利ではありません。だからこの問題を解決するために
.shスクリプトを使用してファイルを外層にネストし、コマンドをどこでも実行できるようにします。
2.1vdbenchテストルールを作成する
以前にパフォーマンステストにFioを使用したことがある人は、現在、4k、8k、128k、1M、2M、4M、128M、1Gなどのブロックサイズで読み取りおよび書き込み速度をテストしていることを知っておく必要があります。オンラインにもたくさんのブログがあります
チュートリアルでは使い方を説明していますが、説明が面倒だと思いますので、直接使って実際の書き方を見てみましょう。
4Kテストルールの準備を見てください。
fsd=fsd1,anchor=/mnt/test1/4k,depth=1,width=5,files=10,size=4k
fwd=fwd1,fsd=fsd1,operation=create,threads=8,xfersize=4k,fileio=sequential,openflags=o_direct
rd=rd1,fwd=fwd*,fwdrate=max,format=yes,elapsed=3600,interval=2
fsd、fwd、rdなどを紹介するブログはたくさんありますが、繰り返しません。通常、デフォルトで末尾に1を追加します。以下は、私が4kで使用したさまざまなパラメーターの説明です。
上記は、ブロックサイズが4kで作成モードのディスクパフォーマンステストルールスクリプトです。同時に、8k、1M、1G、その他のルールスクリプトを記述して、呼び出すことができます。
1M読み取り
fsd=fsd1,anchor=/mnt/test2/1M,depth=1,width=10,files=10000,size=1M
fwd=fwd1,fsd=fsd1,operation=read,threads=100,xfersize=1M,fileio=sequential,openflags=o_direct
rd=rd1,fwd=fwd*,fwdrate=max,format=yes,elapsed=3600,interval=2
1M書き込み
fsd=fsd1,anchor=/mnt/test2/1M,depth=1,width=10,files=10000,size=1M
fwd=fwd1,fsd=fsd1,operation=write,threads=100,xfersize=1M,fileio=sequential,openflags=o_direct
rd=rd1,fwd=fwd*,fwdrate=max,format=yes,elapsed=3600,interval=2
1G読み取り
fsd=fsd1,anchor=/mnt/test2/1G,depth=1,width=10,files=10,size=1G
fwd=fwd1,fsd=fsd1,operation=read,threads=100,xfersize=1M,fileio=sequential,openflags=o_direct
rd=rd1,fwd=fwd*,fwdrate=max,format=yes,elapsed=3600,interval=2
1G書き込み
fsd=fsd1,anchor=/mnt/test2/1G,depth=1,width=10,files=10,size=1G
fwd=fwd1,fsd=fsd1,operation=write,threads=100,xfersize=1M,fileio=sequential,openflags=o_direct
rd=rd1,fwd=fwd*,fwdrate=max,format=yes,elapsed=3600,interval=2
待って、私たちがそれを呼ぶことができるようにそれを書いてください。
2.2shスクリプトでネストされたコマンドを実行する
スクリプトを作成すると実行されますが、vdbenchはインストールディレクトリでコマンドを実行する必要があります。これはあまり友好的ではないため、shスクリプトを使用してスクリプトをネストします。
テストスクリプトをどこにでも実装するため。
#!/bin/bash
#测试挂载目录/mnt/test1/:4k 64k 128k 512k
# /mnt/test2/:1M 8M 128M 1G
#规则文件: ./nfs/
#日志: ./testlog/NFS/
mkdir -p testlog/NFS/
#**************************Sequence create/write Test*************************#
#4k create
./vdbench -f ./nfs/4k_create -o testlog/NFS/4k_create
#64k create
./vdbench -f ./nfs/64k_create -o testlog/NFS/64k_create
date
echo "test done"
上記のコードに示すように、マウントディレクトリ/ mnt / test1のパフォーマンスをテストしています。テストルールファイルを書き込んだ後、それを/ nfsディレクトリに置き、ログ出力ディレクトリは/ testlogになります。
2.3ログの出力ディレクトリを指定します
上の図に示すように、テスト結果である実行前にログを保存するためのtestlogフォルダーを作成しました。また、各ルールファイルの実行後にログストレージディレクトリを指定します。
vdbenchのパフォーマンステストログはfioのようには見えません。最終結果はコマンドラインに直接表示され、vdbenchはHTMLファイルを生成します。より便利に表示するには、windosにエクスポートする必要があります。
vdbenchの実行中にリアルタイムのログがあります。(しかし、最終結果ではありません)
3.vdbenchの実行例
スクリプトを実行した後、ログ出力ディレクトリに移動して結果を表示します。
テスト中にエラーが報告された場合は、errorlog.htmlを確認し、全体の結果については、summary.htmlに戻ります。
summary.htmlに登場
Vdbenchの実行が正常に完了したことは、正常に実行されたことを表します。
結果は通常、平均値をチェックすることです。たとえば、作成モードを実行するときは、作成のパフォーマンス指標をチェックする必要があります。
レートまたは2つのインジケーターは、fioのBWおよびiopsと同様に、書き込みレートと1秒あたりの読み取りおよび書き込みの数を表します。
4.まとめ
fioとvdbenchにはそれぞれメリットがあります。一般的に、fioは少し使いやすいです。vdbenchはエラーが発生しやすく、特に長期のパフォーマンステスト(3 * 24時間の安定性テストなど)では、Fioのパフォーマンスが向上します。
これは、2つが異なる環境プラットフォームに依存しているためかもしれません。FioはC ++環境によってはより安定している可能性があります。
ご不明な点がございましたら、メッセージを残してください。メッセージが表示されたら返信する必要があります。