vdbench ストレージ パフォーマンス テスト ツールの使用 - 直接取得

【ストレージテスト】vdbenchストレージパフォーマンステストツール

I.はじめに

1 はじめに

vdbench は、通常、データの整合性を検証し、直接接続 (またはネットワーク接続) ストレージのパフォーマンスを測定するために使用される I/O ワークロード ジェネレーターです。Windows および Linux 環境で実行でき、ファイル システムのテストやブロック デバイスのベンチマーク パフォーマンスに使用できます。

2. バージョンパッケージを取得する

vdbench バージョンのパッケージの
ダウンロード リンク
jdk バージョンのパッケージの
ダウンロード リンク (Windows)
ダウンロード リンク (Linux)
II. インストールと展開

1. Linuxクライアント

jdk 環境をデプロイします。
 jdk-8u341-linux-x64.rpm を /root ディレクトリにアップロードし、rpm パッケージをインストールします。

#rpm -ivh jdk-8u341-linux-x64.rpm

インストールが成功したかどうかを確認する

#java -バージョン

キーフリー
オプションの設定は必要ありません。オンラインでテストする必要がある場合は、この項目を設定する必要があります

この例では、オンライン テストに 3 つのクライアントを使用し、クライアント ノード 1 をプライマリ ノードとして使用します。

クライアントのホスト名

クライアントIP

ノード1

10.10.10.1

ノード2

10.10.10.2

ノード3

10.10.10.3

各ノードの IP とホスト名のマッピング関係を /etc/hosts 構成ファイルに書き込みます。

#echo '10.10.10.1 ノード 1' >> /etc/hosts

#echo '10.10.10.2 ノード 2' >> /etc/hosts

#echo '10.10.10.3 ノード 3' >> /etc/hosts

マスター ノードは公開キー ファイルを生成し、それを他のスレーブ ノードにコピーします (秘密キーなしでログインするようにマスター ノードをスレーブ ノードに設定します)

#ssh-keygen

#ssh-コピー-id ノード2

#ssh-コピー-id ノード3

vdbench を使用して
 vdbench インストール パッケージを /root/vdbench50406 ディレクトリに解凍し、vdbench 解凍ディレクトリに切り替えて、対応するパラメータ ファイルを実行します。

#tar -zxvf vdbench50406.tar.gz -C /root/

2. Windowsクライアント

jdk環境の導入
jdkソフトウェアを直接インストールするだけ(インストール完了後に環境変数が自動的に追加されます)
vdbenchを使用する
vdbenchソフトウェアパッケージを解凍し、vdbench解凍ディレクトリに切り替えて、対応するパラメータファイルを実行します

オンライン テスト中は、クライアントのシステム時刻が一致している必要があります。一致していないと、クロック同期アラームが発生します (ハートビートの問題が発生する可能性があります)。クライアントのファイアウォールを閉じる必要があります (または、開いているプログラムでポート 5570 を指定するように設定します)
。 、5560 アクセス)
を使用してシステム ログ サービス rsyslog を閉じます。操作中に他のログ ファイルの情報を出力しないようにします。
パラメータ ファイルにmessagescan=noを追加して、冗長なシステム ログをフィルタリングします。
3. 共通の操作

1. 共通操作コマンド

vdbench環境を確認する

#cd /root/vdbench50406/

#./vdbench -t

テストモデルを実行する

注: -f の後にはテスト パラメータ ファイル名が続き、-o の後にはエクスポート テスト結果のパスが続きます

#./vdbench -f {ファイル名} -o {エクスポートパス}

rsh通信を確立する

注: このコマンドは、Windows システムで複数のホストで vdbench をオンラインで実行するときに使用します。Windows オペレーティング システムは ssh をサポートしていないため、vdbench は rsh 通信方式を提供します。ターゲット ホストでこのツールを実行すると、vdbench は vdbench スレーブとマスター間の通信用の Java ソケットを開始します。

./vdbench rsh

4. パラメータの説明

vdbench は、ファイル システムとブロック デバイスのベンチマーク パフォーマンス テストに使用できます。以下では主にファイル システムとブロック ストレージの共通テスト パラメータを紹介します。vdbench のすべてのテスト パラメータはパラメータ ファイルに定義されており、実行時に順番に読み取られて実行されます
。対応する操作。ファイルを定義するときに実行順序を定義する必要があります

1. ファイルシステム

ファイル システム パラメータ ファイルの定義順序は、HD、FSD、FWD、RD です。

1.1、HD(ホスト定義)

オプションの HD パラメータは、単一マシンの実行時には構成する必要はなく、通常はマルチホストのオンライン テスト時にのみ構成する必要があります。

hd=デフォルト、vdbench=/root/vdbench50406、ユーザー=root、シェル=ssh

hd=hd1、システム=ノード1

hd=hd2、システム=ノード2

hd=hd3、システム=ノード3


hd= は、ホストによって定義された名前を識別します。複数のホストが実行されている場合、hd1、hd2、hd3... を使用して、system = ホストの IP アドレスまたはホスト名を区別できます。 vdbench
= vdbench 実行ファイルのストレージ パス(マルチホストの場合)ストレージ パスは異なりますが、hd で定義できます
user=slave と master 通信を個別に指定する場合、user
shell= は rsh、ssh、または vdbench として選択でき、デフォルト値は rsh です マルチホスト オンライン テスト中、通信は
パラメータ値が rsh の場合、マスターホストとスレーブホスト間のモードを設定する必要があります。マスターホストとスレーブホストの rsh 相互信頼は、rsh が平文送信を使用することを考慮すると、セキュリティレベルが十分ではありません。通常、この通信方法はパラメータ値が rsh の場合には推奨されません
値が ssh の場合、マスター ホストとスレーブ ホストを設定する必要があります。 ssh 相互信頼。通常、Linux ホストがオンラインのときに使用されます。この通信方法。パラメータ値が vdbench の場合、すべてのスレーブ ホストで vdbench rsh を実行して、rsh デーモンを有効にする必要があります
。 vdbench 自体のプロセス 通常、この通信方式は Windows ホストがオンラインのときに使用されます
1.2、FSD (File System Define)

fsd=デフォルト、openflags=directio、深さ=2、幅=3、ファイル=2、サイズ=128k

fsd=fsd1,anchor=/mnt/client1

fsd=fsd2,anchor=/mnt/client2

fsd=fsd3、アンカー=/mnt/client3

fsd= はファイルシステム定義の名前を識別します。複数のファイルシステム (fsd1、fsd2、fsd3...) がある場合、default (すべての fsd のデフォルト値として同じパラメータが使用されます) を指定できます。 openflags= が設定されますバッファなしキャッシュを使用するには、o_direct または directio にAnchor= ファイルをディレクトリ
に書き込み、Linux の指定パスは /dir01、Windows の指定パスは E:\dir01、 Depth= 作成されたディレクトリのレベル数 (つまり、ディレクトリの深さです)幅= フォルダの各層のサブフォルダファイル数= テストファイルの数(vdbench テストプロセス中にマルチレベルのディレクトリ構造が生成されます。実際には、ディレクトリの最後の層のみ)テスト ファイルを生成します) size= 各テスト ファイルのサイズ**distribution= ** オプションの値はbottom または all 、デフォルトはbottomです– パラメータ値がbottomの場合、プログラムは最後の層ディレクトリにのみテスト ファイルを書き込みます– パラメーター値が all の場合、プログラムはすべてのレイヤー ディレクトリにテスト ファイルを書き込みます。shared= オプションの値は、yes または no で、デフォルト値は no です。通常、マルチホスト オンライン テストが指定されている場合にのみ、vdbench は異なる値を許可しません。スレーブは、同じディレクトリ構造内のすべてのファイルを共有する必要があります。これは、多くのオーバーヘッドが発生するためですが、同じディレクトリ構造を共有することができます。shared=yes が設定されている場合、異なるスレーブはディレクトリ内のすべてのファイルを均等に共有してアクセスできます。つまり、各スレーブには均等に分割された独自のアクセス領域があるため、同じファイルの読み取りと書き込みをテストすることはできません。複数の顧客による– マルチホスト オンライン テストで、書き込まれたルート ディレクトリ アンカーが同じパスである場合、パラメーター値を yes に指定する必要があります。











hd=デフォルト、vdbench=/root/vdbench50406、ユーザー=root、シェル=ssh

hd=hd1、システム=ノード1

hd=hd2、システム=ノード2

hd=hd3、システム=ノード3

fsd=fsd1、アンカー=/クライアント/、深さ=2、幅=100、ファイル=100、サイズ=4k、共有=はい

計算式は次のとおりです。
 最終階層で生成されるフォルダーの数 = 幅^深さ
 テスト ファイルの数 = (幅^深さ)*ファイル

fsd=fsd1、アンカー=/ディレクトリ1、深さ=2、幅=3、ファイル=2、サイズ=128k

上記のパラメータを例として、生成されるディレクトリ構造とテスト ファイルは次のとおりです。

最終階層のフォルダー数=3^2=9 最終階層のファイル数=9*2=18

/dir1/

§── no_dismount.txt

§── vdb.1_1.dir

│ §── vdb.2_1.dir

│ │ §── vdb_f0001.file

│ │ └── vdb_f0002.file

│ §── vdb.2_2.dir

│ │ §── vdb_f0001.file

│ │ └── vdb_f0002.file

│ └── vdb.2_3.dir

│ §── vdb_f0001.ファイル

│ └─ vdb_f0002.ファイル

§── vdb.1_2.dir

│ §── vdb.2_1.dir

│ │ §── vdb_f0001.file

│ │ └── vdb_f0002.file

│ §── vdb.2_2.dir

│ │ §── vdb_f0001.file

│ │ └── vdb_f0002.file

│ └── vdb.2_3.dir

│ §── vdb_f0001.ファイル

│ └─ vdb_f0002.ファイル

§── vdb.1_3.dir

│ §── vdb.2_1.dir

│ │ §── vdb_f0001.file

│ │ └── vdb_f0002.file

│ §── vdb.2_2.dir

│ │ §── vdb_f0001.file

│ │ └── vdb_f0002.file

│ └── vdb.2_3.dir

│ §── vdb_f0001.ファイル

│ └─ vdb_f0002.ファイル

└── vdb_control.ファイル

12 ディレクトリ、20 ファイル

1.3、FWD(ファイルシステムワークロードファイル)

fwd = デフォルト、操作 = 読み取り、xfersize = 4k、fileio = シーケンシャル、ファイル選択 = ランダム、スレッド = 2

fwd=fwd1、fsd=fsd1、ホスト=hd1

fwd=fwd2、fsd=fsd2、ホスト=hd2

fwd=fwd3、fsd=fsd3、ホスト=hd3

fwd= ファイル システム ワークロード定義の名前を識別します。複数のファイル システム ワークロードを定義する場合、fwd1、fwd2、fwd3... を使用して区別できます。 fsd = ファイル ストレージ定義の名前を使用してこのワークロードを識別します。 host= このワークロードを識別し
ます
。ホスト
操作を使用する= オプションの値は読み取りまたは書き込み、およびファイル操作方法です。
rdpct= オプションの値は 0 ~ 100、読み取り操作の割合であり、通常、読み取りと書き込みが混在する場合に指定する必要があります。 60、読み取りと書き込みの混合比率は 6:4 です。
fileio= オプションの値は、ファイル I/O が実行される方法を識別するランダムまたはシーケンシャルです。
fileselect= ランダムまたはシーケンシャル、ファイルまたはディレクトリを選択する方法を識別します。
xfersizes= データ転送 (読み取りおよび書き込み操作) によって処理されるデータのサイズ (つまり、単一 IO サイズ)
thread= このワークロードの同時スレッドの数
注:
1. デフォルトの format=yes の場合、事前入力データのワークロードは次のようになります。 thread=8、xfersize=128k として定義されます。つまり、事前入力データは 8 スレッドと IO サイズを使用します。
デフォルトの事前入力データのワークロード定義を 128K に変更する必要がある場合は、スレッド数と IO サイズ (fwd=format、threads=nn、xfersize=nn)

1.4、RD(実行定義)

rd=rd1、fwd=(fwd1-fwd3)、fwdrate=max、format=restart、elapsed=604800、interval=10

rd= ファイル システム実行定義の名前を識別します。
fwd= ファイル システム ワークロード定義の名前を識別します。
fwdrate= 1 秒あたりに実行されるファイルシステム操作の数。
max に設定すると、制限がないことを意味し、最大強度に
応じて適応されます。テスト ディレクトリにファイルがない場合、読み書きできるファイルがないため、vdbench は異常終了します。
yes: テスト ディレクトリの既存のファイル構造を削除し、新しいファイル構造を再作成することを意味します。
restart: 未生成のディレクトリまたはファイルのみを作成することを意味し、実際のサイズに達しないファイルを増やすことを意味します。
elapsed= デフォルト値は 30、テスト実行時間(秒)
間隔=結果出力印刷間隔(秒)
2. ブロックデバイス

ブロック デバイス パラメータ ファイルの定義順序は、HD、SD、WD、RD です。

1.1、HD(ホスト定義)

オプションの HD パラメータは、単一マシンの実行時には構成する必要はなく、通常はマルチホストのオンライン テスト時にのみ構成する必要があります。

hd=デフォルト、vdbench=/root/vdbench50406、ユーザー=root、シェル=ssh

hd=hd1、システム=ノード1

hd=hd2、システム=ノード2

hd=hd3、システム=ノード3


hd= は、ホストによって定義された名前を識別します。複数のホストが実行されている場合、hd1、hd2、hd3... を使用して、system = ホストの IP アドレスまたはホスト名を区別できます。 vdbench
= vdbench 実行ファイルのストレージ パス(マルチホストの場合)ストレージ パスは異なりますが、hd で定義できます
user=slave と master 通信を個別に指定する場合、user
shell= は rsh、ssh、または vdbench として選択でき、デフォルト値は rsh です マルチホスト オンライン テスト中、通信は
パラメータ値が rsh の場合、マスターホストとスレーブホスト間のモードを設定する必要があります。マスターホストとスレーブホストの rsh 相互信頼は、rsh が平文送信を使用することを考慮すると、セキュリティレベルが十分ではありません。通常、この通信方法はパラメータ値が rsh の場合には推奨されません
値が ssh の場合、マスター ホストとスレーブ ホストを設定する必要があります。 ssh 相互信頼。通常、Linux ホストがオンラインのときに使用されます。この通信方法。パラメータ値が vdbench の場合、すべてのスレーブ ホストで vdbench rsh を実行して、rsh デーモンを有効にする必要があります
。 vdbench 自体のプロセス 通常、Windows ホストがオンラインのときにこの通信方式が使用されます 1.2、
SD (Storage Define)

sd=sd1、hd=hd1、lun=/dev/sdb、openflags=o_direct、threads=6

sd=sd3、hd=hd2、lun=/dev/sdb、openflags=o_direct、threads=6

sd=sd6、hd=hd3、lun=/dev/sdb、openflags=o_direct、threads=6

sd= はストレージによって定義された名前を識別します。
hd= はホストによって定義された名前を識別します。
lun= はブロックデバイスに書き込みます。Linux が sdb ディスクを使用する場合、指定されたパスは /dev/sdb です。Windows が G ディスクを使用する場合、指定されたパスは \.\G:;
openflags= o_direct または directio に設定すると、バッファなしキャッシュで読み取りおよび書き込み操作が実行されます
thread= SD
1.3、WD (ワークロード定義)への同時 I/O リクエストの最大数

wd=wd1、sd=sd*、seekpct=100、rdpct=100、xfersize=8k、skew=40

wd=wd2、sd=sd*、seekpct=100、rdpct=0、xfersize=8k、skew=10

wd=wd3、sd=sd*、seekpct=100、rdpct=100、xfersize=1024k、skew=40

wd=wd4、sd=sd*、seekpct=100、rdpct=0、xfersize=1024k、skew=10

wd= は、ワークロード定義の名前を示します。
sd= は、ストレージ定義の名前を示します。
Seekpct= オプションの値は 0 または 100 (シーケンシャルまたはランダムも使用可能) で、デフォルト値は 100 (ランダム シークの割合) です。 0 に設定すると順序を意味し、100 に設定するとランダムを意味します。
rdpct= リクエストの総数に対する読み取りリクエストの割合。0 に設定すると書き込みを意味し、100 に設定すると読み取りを意味します。 xfersize= 転送されるデータのサイズ
デフォルト設定は 4k です。
skew= は必須のオプションではありません。通常、複数のワークロードがある場合に指定する必要があります。ワークロードが合計ワークロードの割合を占めることを示します (スキューの合計は 100)。 1.4、RD (実行
)定義)

rd=rd1、wd=wd*、iorate=max、maxdata=400GB、ウォームアップ=30、経過=604800、間隔=5

rd= 実行定義の名前を識別します
wd= ワークロード定義の名前を識別します
iorate= 共通のオプション値は 100、最大、このワークロードの固定 I/O 速度です
。パラメーター値が 100 の場合、速度は100 I/O/秒 ワークロードを Os の速度で実行します。パラメータ値が最大レートより低い値に設定されている場合、読み取りおよび書き込み速度を制限する効果が得られます。パラメータ値が最大の場合
、ワークロードは最大 I/O レートで実行され、一般テスト最大パフォーマンスの読み取りおよび書き込みを行う場合、このパラメータの値は max
Warmup= ウォームアップ時間 (秒) です。デフォルトでは、vdbench は最初の I/O レートの出力データを除外します。インターバル時間
が 5 であり、ウォームアップ時間中のプログラムのテストは最終テストには含まれません。が 600 の場合、テスト パフォーマンスは 2~経過/間隔 (avg_2-120) の時間間隔での平均パフォーマンスです
。間隔が 5、ウォームアップが 60、経過時間が 600 の場合、テスト パフォーマンスは 1+(ウォームアップ/ interval)~(warmup+elapsed)/interval(avg_13-132) 平均パフォーマンス maxdata= 時間間隔内の読み取りおよび書き込みデータ サイズ (通常は、経過時間の実行後にテストが終了します。elapsed および maxdata パラメーター値を指定する場合
)同時に、最も速く実行されるパラメーターが優先されます (つまり、maxdata テスト時間が経過時間未満の場合、プログラムは経過データ量を書き込んだ後に終了します) – パラメーター値が 100 未満の場合
、これは、読み取りおよび書き込みデータ ボリュームが合計ストレージ定義サイズの倍数であることを意味します (たとえば、maxdata=2、2 つのストレージ定義 (各ストレージ定義データ ボリュームは 100G) の場合、実際の読み取りおよび書き込みデータ サイズは 400G になります)。 – パラメータ
値が 100 を超える場合、データ量が実際に読み書きされたデータ量であることを意味します (単位は M、G、T などを使用できます)。
elapsed= デフォルト値は 30、テスト実行の期間 (秒単位)、
interval= レポート間隔 (秒単位)
5. 実行中の使用量

1. スタンドアロン動作

Linux
 の例は次のとおりです。単一ノードがベア ディスク、1M シーケンシャル書き込み、テスト時間は 600 秒、ウォームアップ時間は 60 秒、レポート間隔は 2 秒でテストされます [root@node1 vdbench50406] cat
Single- RawDisk.html

sd=sd1、lun=/dev/sdb、openflag=o_direct

wd=wd1、sd=sd1、seekpct=0、rdpct=0、xfersize=1M

rd = rd1、wd = wd1、iorate = 最大、ウォームアップ = 60、経過 = 600、間隔 = 2

[root@node1 vdbench50406]

[root@node1 vdbench50406] ./vdbench -f Single-RawDisk.html

Windows
 の例は次のとおりです。ファイル システムに対して単一ノードがテストされ、1M が順次書き込まれ、ディレクトリの深さは 2、各層のディレクトリ数は 3、各ディレクトリ内のファイル数は 10、各ファイルのサイズは 200M、テスト時間は 600 秒、レポート時間は 2 秒
E:\vdbench50406>詳細「Single FileSystem.txt」

fsd=fsd1、アンカー=E:\Sigle-FileSystem、深さ=2、幅=3、ファイル=10、サイズ=200M

fwd=fwd1、fsd=fsd1、operation=write、xfersize=1M、fileio=sequential、fileselect=rando

m、スレッド=2

rd = rd1、fwd = fwd1、fwdrate = 最大、フォーマット = はい、経過 = 600、間隔 = 5

E:\vdbench50406>

E:\vdbench50406>vdbench -f “Single FileSystem.txt”

2. オンライン運用

Linux
1. 2. インストールと展開に従って、マルチホスト ssh 相互信頼を構成します
2. マスター ホストはテスト パラメータ ファイルを実行できます 例は
次のとおりです、3 つのノードはベア ディスク オンライン テスト用で、1M に書き込みますシーケンス、テスト データ量は 400G、ウォームアップ時間は 30 秒、レポート間隔 5 秒
[root@node1 vdbench50406] cat Multi-RawDisk

hd=デフォルト、vdbench=/root/vdbench50406、ユーザー=root、シェル=ssh

hd=hd1、システム=ノード1

hd=hd2、システム=ノード2

hd=hd3、システム=ノード3

sd=sd1、hd=hd1、lun=/dev/sdb、openflag=o_direct

sd=sd2、hd=hd2、lun=/dev/sdb、openflag=o_direct

sd=sd3、hd=hd3、lun=/dev/sdb、openflag=o_direct

wd=wd1、sd=sd*、seekpct=0、rdpct=0、xfersize=1M

rd=rd1、wd=wd1、iorate=max、maxdata=100M、経過=64800、ウォームアップ=30、間隔=5

[root@node1 vdbench50406]

[root@node1 vdbench50406] ./vdbench -f Multi-RawDisk

ウィンドウ
1. すべてのスレーブ ホストが vdbench 自体を実行します。rsh デーモン プロセス
E:\vdbench50406>vdbench rsh

2. マスター ホストはテスト パラメータ ファイルを実行できます。
例は次のとおりです。3 つのノードはファイル システムのオンライン テスト用で、1M シーケンシャル書き込み、ディレクトリの深さは 2、各層のディレクトリの数は 3 です。 、各ディレクトリ内のファイル数は 10000、各ファイルのサイズは 200M、テスト時間は 600 秒、レポート間隔は 1 秒です。

E:\vdbench50406>詳細「Multi FileSystem.txt」

hd=デフォルト、vdbench=E:\vdbench50406、ユーザー=ミカ、シェル=vdbench

hd=hd1、システム=10.10.10.1

hd=hd2、システム=10.10.10.2

fsd=fsd1、アンカー=Z:\Sigle-FileSystem-01、深さ=2、幅=3、ファイル=10000、サイズ=200M

fsd=fsd2、アンカー=Z:\Sigle-FileSystem-02、深さ=2、幅=3、ファイル=10000、サイズ=200M

fwd = デフォルト、操作 = 書き込み、xfersize = 1M、fileio = シーケンシャル、ファイル選択 = ランダム、スレッド = 16

fwd=fwd1、fsd=fsd1、ホスト=hd1

fwd=fwd2、fsd=fsd2、ホスト=hd2

rd=rd1、fwd=fwd*、fwdrate=最大、フォーマット=はい、経過=600、間隔=1

E:\vdbench50406>

E:\vdbench50406>vdbench -f “Multi FileSystem.txt”

6. 結果の分析

vdbench が負荷テストを実行すると、インストール ディレクトリに出力フォルダーが生成され、そこにテスト結果ファイルが含まれます。

1. 出力ファイル

errorlog.html
データ検証を有効にしてテストを実行すると、次のようなエラー メッセージが含まれる場合があります。
無効なキー読み取り
無効な lba 読み取り (セクターの論理バイト アドレス)
無効な SD または FSD 名の読み取り
データ破損の取得
不良セクター
flatfile.html
vdbench は、列ごとの ASCII 形式の情報。parse flat パラメータを使用して結果を解析できます。/vdbench
parse flat -i < flatfile.html> -o Output.csv [-ccol1col2…][-a][-fcol1値1 列2 値2...]

-i input flatfile, e.g. output/flatfile.html

-o output CSV file name (default stdout)

-c which column to write to CSV. Columns are written in the order specified

-f filters: 'if (colX == valueX) ... ...' (Alphabetic compare)

-a include only the 'avg' data. Default: include only non-avg data.

-i是表示待分析的文件,这里写vdbench输出目录里的flatfile.html这个文件,写其它文件不能正常解析;

-o是解析后的输出文件,可以手动指定存放目录。文件格式为CSV,此文件的列由-c参数指定,列的顺序为-c参数的顺序

-a是表示csv文件中只记录测试过程中的avg值

例は次のとおりです。

.\vdbench.bat parse flat -i D:\vdbench50406\output\ flatfile.html -c 実行速度 MB/秒、seekpct rdpct バイト/IO スレッド resp -od:\output.csv -a

vdbench parse flat 引数:

引数0: -i

引数 1: D:\vdbench50406\output\ flatfile.html

引数 2: -c

引数 3: 実行

引数 4: レート

引数 5: MB/秒

引数6:seekpct

引数 7: rdpct

引数 8: バイト/IO

引数 9: スレッド

引数 10: それぞれ

引数 11: -o

引数 12: D:\output.csv

引数 13: -a

14:12:49.265 ParseFlat が正常に完了しました。

histogram.html
レポート ヒストグラムの応答時間をテキスト形式で含むファイル
logfile.html
Java コードがコンソール ウィンドウに書き込む情報の各行のコピーが含まれます。logfile.html は主にデバッグに使用されます
parmfile.html
にはテスト実行の構成パラメータ情報が含まれます
summary.html は
すべてのデータ情報を記録し、各レポート間隔および最初の間隔を除くすべての間隔での全体的なパフォーマンスとワークロードを表示します 加重平均 totals.html

、すべてのデータ計算後の平均値、一般的なテスト結果はこのファイルから取得され、最初の間隔を除くすべての間隔の加重平均値
2. 結果の分析

2.1. ファイルシステム

テストパラメータは次のとおりです。

hd=デフォルト、vdbench=E:\vdbench50406、ユーザー=ミカ、シェル=vdbench

hd=hd1、システム=10.10.10.1

hd=hd2、システム=10.10.10.2

fsd=fsd1、アンカー=Z:\Sigle-FileSystem-01、深さ=2、幅=3、ファイル=10、サイズ=4M

fsd=fsd2、アンカー=Z:\Sigle-FileSystem-02、深さ=2、幅=3、ファイル=10、サイズ=4M

fwd = デフォルト、操作 = 書き込み、xfersize = 1M、fileio = シーケンシャル、ファイル選択 = ランダム、スレッド = 2

fwd=fwd1、fsd=fsd1、ホスト=hd1

fwd=fwd2、fsd=fsd2、ホスト=hd2

rd=rd1、fwd=fwd*、fwdrate=max、format=はい、経過=600、間隔=5

テスト結果は次のとおりです。

18:47:03.001 RD=format_for_rd1 を開始しています

2020年6月4日 .間隔。.ReqstdOps… …cpu%… 読み取り …読み取り… …書き込み… …mb/秒… mb/秒 .xfer… …mkdir… …rmdir… …作成… …開く… …閉じる… …削除…

                      rate   resp total  sys   pct   rate   resp   rate   resp  read write  total    size  rate   resp  rate   resp  rate   resp  rate   resp  rate   resp  rate   resp

18:48:40.218 avg_2-20 57.6 6.244 13.4 2.99 0.0 0.0 0.000 57.6 6.244 0.00 7.20 7.20 131072 0.2 104.49 0.2 41.526 1.8 7527.0 1.8 192.01 1.8 7134.3 1.8 21.984

18:48:42.000 RD=rd1 を開始します。経過=600; 転送速度=最大。for ループ: なし

18:58:42.205 avg_2-120 6.2 1.063 13.0 2.80 0.0 0.0 0.000 6.2 1.063 0.00 6.24 6.24 1048576 0.0 0.000 0.0 0.000 0.0 0.000 1.6 47.864 1.6 2401.1 0.0 0.000

totals.html は通常、2 つの部分で構成されます。最初の部分は、ファイル格納ディレクトリ構造とデータ充填の平均パフォーマンス値であり、2 番目の部分は、最初の時間間隔を除く、テスト実行中のすべての時間間隔の平均パフォーマンス値です。主に後半のコンテンツをご覧ください

「間隔」は
間隔番号を報告します。テスト結果は通常、最初の間隔を除くすべての時間間隔の加重平均です。たとえば、
経過=600、間隔=5の場合、パフォーマンス結果は2番目の間隔から120番目の間隔までの平均値です( avg_2- 120)
ReqstdOps
rate
1 秒あたりの読み取りおよび書き込み I/O の数 (読み取りおよび書き込み IOPS)。これは、rd 操作を通じてパラメーター fwdrate を定義することで制御できます。fwdrate が最大の場合、ワークロードは最大 I/O で実行されます
。 /O レート
fwdrate が最大 I/O より低い場合 レートが 0 の場合、読み取りおよび書き込み速度を制限し、ワークロードを固定 I/O レートで実行できます Resp 読み取りおよび書き込みリクエストの
応答
時間(読み取りおよび書き込み遅延)、単位はミリ秒です。
cpu%
tatol
合計 CPU 占有率
sys
システム CPU 占有率
read pct
リクエストの総数に対する読み取りリクエストの割合。0 の場合は書き込みを意味し、100 の場合は書き込みを意味します。これは、読み取り読み取り
速度1 秒あたりの読み取り I/O

(読み取り IOPS)
resp
読み取り要求応答時間 (読み取り遅延) を意味します。単位は ms 書き込み
速度
1
秒あたりの書き込み I/O 数 (書き込み IOPS)
resp
書き込み要求応答時間 (書き込み遅延)、単位は ms
mb/sec 1 秒あたりの
読み取り
速度

1 秒あたりの書き込み書き込み速度 1あたりの読み取りおよび書き込み速度の
合計xfersizeそれぞれの読み取りおよび書き込み I/O 送信データ量 (つまり、単一の読み取りおよび書き込み I/O のサイズ)、単位はバイト B 2.2、ブロックデバイス



テストパラメータは次のとおりです。

メッセージスキャン=いいえ

hd=デフォルト、vdbench=/root/vdbench50406、ユーザー=root、シェル=ssh

hd=hd1、システム=10.10.10.1

hd=hd2、システム=10.10.10.2

hd=hd3、システム=10.10.10.3

sd=sd1、hd=hd1、lun=/dev/sdb、openflag=o_direct

sd=sd2、hd=hd2、lun=/dev/sdb、openflag=o_direct

sd=sd3、hd=hd3、lun=/dev/sdb、openflag=o_direct

wd=wd1、sd=sd*、seekpct=0、rdpct=0、xfersize=1M

rd=rd1、wd=wd1、iorate=最大、経過=600、ウォームアップ=30、間隔=5

テスト結果は次のとおりです。

19:02:15.001 RD=rd1 を開始します。I/O レート: 制御されない MAX。経過=600 ウォームアップ=30; for ループ: なし

2020 年 6 月 4 日 間隔 i/o MB/秒 バイト 読み取り応答 読み取り書き込み応答 キュー cpu% cpu%

                         rate  1024**2     i/o    pct     time     resp     resp      max   stddev depth sys+u   sys

19:12:46.068 avg_7-126 82.74 82.74 1048576 0.00 289.158 0.000 289.158 2092.803 155.103 23.9 16.3 14.2

間隔
は間隔番号を報告します。テスト結果は通常、最初の間隔を除くすべての時間間隔の加重平均です。ウォームアップ時間が設定されている場合は、テスト データのこの部分も除外する必要があります。たとえば、経過=600 、
warmup=30、interval= 5、パフォーマンス テストの結果は、7 番目の間隔から 126 番目の間隔までの平均値 (avg_7-126)
i/o rate
1 秒あたりの読み取りおよび書き込み I/O の数 (読み取りおよび書き込み IOPS) )、rd 操作を通じてパラメーター iorate を定義できます。 制御
iorate が最大の場合、最大 I/O 速度でワークロードを実行します。iorate が最大 I/O 速度よりも
低い値の場合、読み取りおよび書き込み速度を制限できます、MB/秒あたりの固定 I/O レートでワークロードを実行します
1
秒あたりの読み取りおよび書き込み速度 (読み取りおよび書き込み帯域幅)
注: 公式マニュアルによると、
バイト i/0 は
読み取りおよび書き込みあたりのデータ量を送信します。 I/O (つまり、単一の読み取りおよび書き込み I/O のサイズ)、単位はバイト B で、wd を介して渡すことができます。ワークロード定義パラメーター xfersize は、ワークロードの合計数に対する読み取り pct 読み取り要求の割合を制御します

これは、wd ワークロード定義パラメーター rdpct によって制御できます。rdpct
が 0 の場合、テスト モデルは write であることを意味します。rdpct が 100 の場合、テスト モデルはread resp time
であることを意味します。遅延)、ミリ秒単位読み取り resp読み取りリクエストの応答時間 (ミリ秒)書き込み resp書き込みリクエストの応答時間 (ミリ秒) ms resp max







最大リクエスト応答時間 (ミリ秒単位、
stddev 単位)
リクエスト応答時間の標準偏差 (ミリ秒単位)
キューの深さ
読み取りおよび書き込み I/0 キューの深さ
cpu% sys+u
カーネル モード スペースおよびユーザー モード スペース CPU 使用率
cpu% sys
カーネル モード スペース CPU 占有率 2020 -05-29 16:00:16
7. テストの説明をクリアします。

1. 試験概要

スレッド数 (thread) は、通常、クライアント CPU スレッド数の合計サイズに設定されます grep 'processor' /proc/cpuinfo | sort -u | wc -l テストの合計データ量は、テストの合計データ量の 2 倍必要ですクライアント メモリのサイズ
読み取りモデルのテスト時にクライアントをクリーンアップする必要がある
キャッシュ情報の同期を終了する; echo 3 > /proc/sys/vm/drop
2. 共通のテスト パラメーター

4M シーケンシャル書き込み
ディレクトリ深さ 2、単一レベル ディレクトリ番号 100、単一ディレクトリ ファイル番号 100、単一ファイル サイズ 4M、IO ブロック サイズ 1M、シーケンシャル書き込み hd=default、vdbench=/
root/vdbench50406、user=root、shell=ssh

hd=hd1、システム=ノード1

hd=hd2、システム=ノード2

hd=hd3、システム=ノード3

hd=hd4、システム=ノード4

hd=hd5、システム=ノード5

hd=hd6、システム=ノード6

fsd=fsd1、アンカー=/client/test01、深さ=2、幅=100、ファイル=100、サイズ=4M、共有=はい

FWD=フォーマット、スレッド=24、xfersize=1m

fwd = デフォルト、xfersize = 1m、fileio = シーケンシャル、ファイル選択 = シーケンシャル、操作 = 書き込み、スレッド = 24

fwd=fwd1、fsd=fsd1、ホスト=hd1

fwd=fwd2、fsd=fsd1、ホスト=hd2

fwd=fwd3、fsd=fsd1、ホスト=hd3

fwd=fwd4、fsd=fsd1、ホスト=hd4

fwd=fwd5、fsd=fsd1、ホスト=hd5

fwd=fwd6、fsd=fsd1、ホスト=hd6

rd=rd1、fwd=fwd*、fwdrate=max、format=再起動、経過=600、間隔=1

4M シーケンシャル読み取り
ディレクトリ深さ 2、単一レベル ディレクトリ番号 100、単一ディレクトリ ファイル番号 100、単一ファイル サイズ 4M、IO ブロック サイズ 1M、シーケンシャル読み取り hd=default、vdbench=/
root/vdbench50406、user=root、shell=ssh

hd=hd1、システム=ノード1

hd=hd2、システム=ノード2

hd=hd3、システム=ノード3

hd=hd4、システム=ノード4

hd=hd5、システム=ノード5

hd=hd6、システム=ノード6

fsd=fsd1、アンカー=/client/test02、深さ=2、幅=100、ファイル=100、サイズ=4M、共有=はい

FWD=フォーマット、スレッド=24、xfersize=1m

fwd = デフォルト、xfersize = 1m、fileio = シーケンシャル、ファイル選択 = シーケンシャル、操作 = 読み取り、スレッド = 24

fwd=fwd1、fsd=fsd1、ホスト=hd1

fwd=fwd2、fsd=fsd1、ホスト=hd2

fwd=fwd3、fsd=fsd1、ホスト=hd3

fwd=fwd4、fsd=fsd1、ホスト=hd4

fwd=fwd5、fsd=fsd1、ホスト=hd5

fwd=fwd6、fsd=fsd1、ホスト=hd6

rd=rd1、fwd=fwd*、fwdrate=max、format=再起動、経過=600、間隔=1

8M 混合読み取りおよび書き込み
、ディレクトリ深さ 2、単一レベルのディレクトリ数 100、単一ディレクトリ内のファイル数 100、単一ファイル サイズ 8M、IO ブロック サイズ 1M、読み取りおよび書き込み混合 (読み取りと書き込みの比率は 6:4) ) hd=default,vdbench=/
root /vdbench50406,user=root,shell=ssh

hd=hd1、システム=ノード1

hd=hd2、システム=ノード2

hd=hd3、システム=ノード3

hd=hd4、システム=ノード4

hd=hd5、システム=ノード5

hd=hd6、システム=ノード6

fsd=fsd1、アンカー=/client/test03、深さ=2、幅=100、ファイル=100、サイズ=8M、共有=はい

FWD=フォーマット、スレッド=24、xfersize=1m

fwd=デフォルト、xfersize=1m、fileio=ランダム、fileselect=ランダム、rdpct=60、スレッド=24

fwd=fwd1、fsd=fsd1、ホスト=hd1

fwd=fwd2、fsd=fsd1、ホスト=hd2

fwd=fwd3、fsd=fsd1、ホスト=hd3

fwd=fwd4、fsd=fsd1、ホスト=hd4

fwd=fwd5、fsd=fsd1、ホスト=hd5

fwd=fwd6、fsd=fsd1、ホスト=hd6

rd=rd1、fwd=fwd*、fwdrate=max、format=再起動、経過=600、間隔=1

一、質疑応答

1、xxx のオープンに失敗しました

  • 問題の説明:

vdbench を使用したテスト中にテストが中断され、次のようなエラー メッセージが表示されます。

19:37:41.155 19:37:44.813 エラー: 20

19:37:41.155 19:37:44.813 file_open()、/trash/64M/vdb.1_47.dir/vdb.2_24.dir/vdb_f0002.file を開くことができませんでした

19:37:41.155 19:37:44.814 エラー: 20

19:37:41.155 19:37:44.814 file_open()、/trash/64M/vdb.1_47.dir/vdb.2_24.dir/vdb_f0003.file を開くことができませんでした

19:37:41.156 19:37:44.814 最大ネイティブ メモリ割り当て: 1,048,576。現在の割り当て: 1,048,576

19:37:41.156 19:37:44.814 最大ネイティブ メモリ割り当て: 1,048,576。現在の割り当て: 1,048,576

19:37:41.156 19:37:44.814 エラー: 20

19:37:41.156 19:37:44.814

19:37:41.156 19:37:44.814 /trash/64M/vdb.1_47.dir/vdb.2_24.dir/vdb_f0002.file のオープンに失敗しました

19:37:41.156 19:37:44.814

19:37:41.158 java.lang.RuntimeException: /trash/64M/vdb.1_47.dir/vdb.2_24.dir/vdb_f0002.file のオープンに失敗しました

  • 原因分析:

デフォルトでは、vdbench は Java が使用するメモリ量を制限します。テスト期間中、Java の実行メモリが不足すると、テストが異常中断されます。

  • 治療措置:

vdbench 実行スクリプトの Java メモリ パラメータを増やします。

[root@node40 ~] cat vdbench50406/vdbench

if [ “$1” == “SlaveJvm” ]; それから

$java -client -Xmx10240m -Xms128m -cp $cp Vdb.SlaveJvm $*

$を終了しますか?

それ以外

$java -client -Xmx10240m -Xms64m -cp $cp Vdb.Vdbmain $*

$を終了しますか?

フィ

注: Xmx は、jvm の最大のメモリ割り当てプールを示します。Xms は、初期メモリ割り当てプール プロセスが
最初に Xms メモリ サイズで開始されることを示します。空きヒープ メモリが 40% 未満の場合、jvm はメモリを Xmx に増やします。ヒープ メモリが 70% を超えている場合、jvm はメモリを Xms に削減します。GC のたびに JVM がメモリを再割り当てするのを避けるために、Xmx と Xms を同じパラメータ値に設定できます。

2、linux/aarch64.soが存在しない

  • 問題の説明:

arm サーバーは vdbench を実行しますが、共有ライブラリの不一致の問題があり、linux/aarch64.so が存在しないため、手動コンパイルが必要であることが示されます。

[root@node163 vdbench50407] ./vdbench -t

14:07:47.486 出力ディレクトリ '/root/vdbench50407/output' を作成しました

14:07:47.737 入力引数がスキャンされました: '-f/tmp/parmfile'

14:07:47.866 スレーブの開始: /root/vdbench50407/vdbench SlaveJvm -m localhost -n localhost-10-220209-14.07.47.444 -l localhost-0 -p 5570

14:07:47.890

14:07:47.890 ファイル /root/vdbench50407/linux/aarch64.so が存在しません。

14:07:47.891 これは現在共有ライブラリが使用されている OS である可能性があります

14:07:47.891 は利用できません。独自のコンパイルが必要になる場合があります。

14:07:47.891 t: java.lang.UnsatisfiedLinkError: ライブラリをロードできません: /root/vdbench50407/linux/aarch64.so

14:07:47.892

14:07:47.892 共有ライブラリ /root/vdbench50407/linux/aarch64.so のロードに失敗しました。

14:07:47.892 CPU タイプが指定されていないことに関連する問題が発生する可能性があります。

14:07:47.892 Vdbench に受け入れ可能、例: MAC PPC vs. X86

14:07:47.893 サポートが必要な場合は、Oracle Vdbench フォーラムまでご連絡ください。

14:07:47.893

14:07:48.395

14:07:48.396 共有ライブラリのロードに失敗しました

14:07:48.396

java.lang.RuntimeException: 共有ライブラリのロードに失敗しました

at Vdb.common.failure(common.java:350)

at Vdb.common.get_shared_lib(common.java:1103)

at Vdb.Native.<clinit>(Native.java:31)

at Vdb.common.signal_caller(common.java:737)

at Vdb.ConnectSlaves.connectToSlaves(ConnectSlaves.java:98)

at Vdb.Vdbmain.masterRun(Vdbmain.java:814)

at Vdb.Vdbmain.main(Vdbmain.java:628)
  • 原因分析:

vdbench のルート ディレクトリにあるダイナミック ライブラリ ファイル linux/linux64.so は x86 に基づいてコンパイルされており、ダイナミック ライブラリ ファイル linux/linux64.so は aarch64 に基づいて再コンパイルする必要があります。

[root@node163 vdbench50407] ls linux/

config.sh linux32.so linux64.so sparc64.so

[root@node163 vdbench50407] ファイル linux/linux64.so

linux/linux64.so: ELF 64 ビット LSB 共有オブジェクト、x86-64、バージョン 1 (SYSV)、静的にリンク、BuildID[sha1]=34a31f32956f21153c372a95e73c02e84ddd29f8、ストリップされていません

  • 治療措置:

vdbench50407 ソース コード パッケージをダウンロードします。ダウンロード アドレス: vdbench50407.src.zip
ソース コード パッケージを解凍し、Linux ディレクトリ
mkdir vdbench50407-srcを作成します。

vdbench50407.src.zip を解凍します -d vdbench50407-src/

cd vdbench50407-src/src/

mkdir Linux

Jni ディレクトリに入り、make.linux ファイルを変更します。主な変更は次のとおりです:
– vdbench ソース コード パス (vdb=xx) を指定します。
– jdk パス (java=xx) を指定します (通常は /usr/lib/ の下にあります)。 jvm/ path
– 全文を削除 – m32 および -m64 文字
cd Jni/

sed -i 'svdb=$mine/vdbench504vdb=/root/vdbench50407-src/srcg' make.linux

sed -i 'sjava=/net/sbm-240a.us.oracle.com/export/swat/swat_java/linux/jdk1.5.0_22/java=/usr/lib/jvm/java-1.8.0-openjdk/g ' make.linux

sed -i 's/-m32//g' make.linux

sed -i 's/-m64//g' make.linux

ソース コードのコンパイル操作を実行します
。/make.linux が正常に実行された後、linux32.so および linux64.so ファイルが .../linux ディレクトリに生成されます。linux64.so ファイルをディレクトリのルート ディレクトリにコピーします。 vdbench テスト ツール linux/aarch64.so を実行し、再度 vdbench test
[root@node163 Jni] ./make.linuxを実行します。

ターゲットディレクトリ: /root/vdbench50407-src/src

32ビットをコンパイルする

リンク32ビット

64ビットのコンパイル

64ビットのリンク

[root@node163 Jni] ll …/linux/

合計160

-rwxrwxrwx 1 ルート ルート 78656 2 月 9 日 14:54 linux32.so

-rwxrwxrwx 1 ルート root 78656 2 月 9 日 14:54 linux64.so

[root@node163 Jni] cp …/linux/linux64.so /root/vdbench50407/linux/aarch64.so

3、Raw デバイス 'sd=sd1,lun=.\G:' が存在しないか、権限がありません。

  • 問題の説明:

Windows システムで vdbench を使用してベア ディスクのパフォーマンスをテストすると、スクリプトの実行が失敗し、Raw デバイス 'sd=sd1,lun=\.\G:' が存在しないか、アクセス許可がないというメッセージが表示されます。

D:\vdbench50406>詳細 raw-test.txt

sd=sd1、lun=\.\G:

wd=wd1、sd=sd1、seekpct=0、rdpct=0、xfersize=1M

rd=rd1、wd=wd1、iorate=max、maxdata=100M、経過=64800、ウォームアップ=30、間隔=5

D:\vdbench50406>vdbench.bat -f raw-test.txt

Copyright © 2000、2016、Oracle および/またはその関連会社。全著作権所有。

Vdbench ディストリビューション: vdbench50406 水曜日 7 月 20 日 15:49:52 MDT 2016

ドキュメントについては、「vdbench.pdf」を参照してください。

17:35:24.328 入力引数がスキャンされました: '-fraw-test.txt'

17:35:24.375 スレーブの開始: D:\vdbench50406\vdbench SlaveJvm -m localhost -n localhost-10-220119-17.35.24.293 -l localhost-0 -p 5570

17:35:24.834 すべてのスレーブが接続されました

17:35:25.263 Raw デバイス 'sd=sd1,lun=\.\G:' が存在しないか、権限がありません。

17:35:25.764

17:35:25.764 上記の失敗を確認してください

17:35:25.765

java.lang.RuntimeException: 上記の失敗を確認してください

    at Vdb.common.failure(common.java:335)

    at Vdb.InfoFromHost.matchDataWithSds(InfoFromHost.java:674)

    at Vdb.InfoFromHost.receiveInfoFromHost(InfoFromHost.java:485)

    at Vdb.SlaveOnMaster.processSlave(SlaveOnMaster.java:151)

    at Vdb.SlaveOnMaster.run(SlaveOnMaster.java:42)
  • 治療措置:

1. ベア ディスクのパスが正しいかどうかを確認します。たとえば、G ディスク ベア ディスクのパフォーマンスをテストするには、テスト パラメーターを lun=\.\G: として指定します。 2. 実行権限があるかどうか、および cmd ウィンドウを確認します
。管理者として実行する必要がある

4、Vdbench に必要な Java バージョンは 1.7.0 です。

  • 問題の説明:

Linux で vdbench を実行すると失敗し、「Vdbench に必要な Java バージョンは 1.7.0 です。Vdbench は終了しました。」というメッセージが表示されます。

root@node65:/home/vdbench50406 ./vdbench -t

Copyright © 2000、2016、Oracle および/またはその関連会社。全著作権所有。

Vdbench ディストリビューション: vdbench50406 水曜日 7 月 20 日 15:49:52 MDT 2016

ドキュメントについては、「vdbench.pdf」を参照してください。

  • Vdbench に必要な Java の最小バージョンは 1.7.0 です。

  • 現在 11.0.9.1 を実行しています

  • Vdbench が終了しました。

CTRL-C が要求されました。vdbench 終了

  • 治療措置:

公式の説明書を確認すると、以前のバージョンの vdbench50407 には Java 検出機能があり (vdbench50407 バージョンは削除されました)、既存環境の Java バージョンを変更せずに vdbench50407 にバージョンアップできます。

// Java 1.10.x のため、50407 に従って削除されました

//checkJavaVersion();



//....



 private static void checkJavaVersion()

{

if (common.get_debug(common.USE_ANY_JAVA))

  return;

if (!JVMCheck.isJREValid(System.getProperty("java.version"), 1, 7, 0))

{

  System.out.print("*\n*\n*\n");

  System.out.println("* Minimum required Java version for Vdbench is 1.7.0; \n" +

                     "* You are currently running " + System.getProperty("java.version") +

                     "\n* Vdbench terminated.");

  System.out.println("*\n*\n*\n");



  System.exit(-99);

}

}

5. オンラインでの vdbench の実行が中断される

  • 問題の説明:

Linux で vdbench をオンラインで実行すると中断が発生する

  • 治療措置:

セキュリティ強化により、SSH 接続はタイムアウト後に自動的に切断されます。/etc/ssh/sshd_config を編集してください。


次の 2 つの文の前にある#ClientAliveInterval 0
#ClientAliveCountMax 3 を削除し
、ClientAliveInterval 0 を ClientAliveInterval XX に変更します。

vdbench のオンライン実行時間に従って変更されたユニット

変更が完了したら、sshd サービスを再起動します。

systemctl sshd を再起動します

データ整合性検証に vdbench を使用する場合の補足説明

推奨パラメータ: -jn

vdbench 検証データを開くためのパラメータは -v または -j です。このプロセスでは、後続の検証のために各書き込み操作のログが記録されます。

-v パラメータを使用すると、生成された検証ログはメモリに直接保存され、-j パラメータを使用すると、検証ログ ファイルが生成されます。2 回目の検証では、-jr を使用して検証用ログを復元できます。-v はメモリに直接記録されるため高速ですが、ストレージ システムが再起動するかメモリがクリーンアップされると、-v パラメータによって記録された検証ログは失われます。-j はディスクに直接書き込まれます。安全ですが速度は低下します。速度を落とします。この時点で -jn を選択すると、非同期でディスクに書き込みます。速度と安全性はある程度保証されます。データ検証の原則

データ検証のワークフローは次のとおりです。ストレージ システムの各最初の書き込み操作がテーブルに記録されます。書き込み操作のブロック サイズが 1m であると仮定すると、このブロック サイズの 512 バイトごとに含まれる 2 つの項目 – 8論理バイト アドレス (LBA) のバイトとデータ検証キー値のバイト (マークは書き込みの数、範囲は 0 ~ 125、00 は書き込みの作成を表し、01 は最初の上書き書き込みを表し、同様に、 126 に達して 00 に戻ると、新しいラウンド) が記録され、このプロセスは検証ログを生成します。スクリプトの 2 回目の再実行 (パラメーター -jr または -vr を使用) は、記録されたログに基づきます。初回データ検証 vdbench を実行して冗長システム ログをフィルタリングする

おすすめ

転載: blog.csdn.net/qq_41196999/article/details/131461420