デプロイメントのテスト
このセクションでは、デプロイメントをテストするために簡単に実現できるインフラテストについて説明します。
SQLサーバー・ストレージ・サブシステムのパフォーマンス・テスト
ストレージサブシステムの性能をテストすることは良い習慣である。 このテストでは、Diskspd ツールを使用してディスク性能テストを実施する。 Diskspdはマイクロソフトが作成したストレージテストツールで、コマンドラインユーティリティであり、利用可能なパラメーターが多数ある。 テストでは、以下のコマンドを使用して各ドライブをテストした:
cd C:\Users\Administrator\Downloads
.\diskspd.exe -c100G -d300 -r -w40 -t4 -o2 -b64K -Sh -L D:\testfile.dat > TestData.txt
.\diskspd.exe -c100G -d300 -r -w40 -t4 -o2 -b64K -Sh -L E:\testfile.dat > TestLog.txt
.\diskspd.exe -c100G -d300 -r -w40 -t4 -o2 -b64K -Sh -L F:\testfile.dat > TestTempDB.txt
コマンドオプションは以下の通り:
-
- -c100G- テスト対象のボリュームに testfile.datという 100GBのファイルを作成します。
-
- -d300- 300秒(5分間)の測定期間。
-
- r- ランダムI/Oアクセス。
-
- -w40- 書き込みリクエスト40%、読み込み60%。 これは SQL Server OLTPデータベースの典型的な負荷である。
-
- -t4- 1ファイルあたりのスレッド数で、使用可能な vCPU あたり1スレッドでなければならない。
-
- -o2- スレッドごとのターゲットごとの未処理のI/Oリクエスト数。
-
- -b64K- SQLサーバーで一般的な 64KBのブロックサイズ。
-
- Sh- ソフトウェア・キャッシングとハードウェア・ライト・キャッシングの両方を無効にする。
-
- L- 待ち時間の統計を測定する。
結果はtxtファイルに記録される。 結果を解釈するための指針として:
- Total IOセクションは、スレッドごとの統計(Read+Write)を提供する。
- Total IO セクションの最後の行には、テスト実行全体の合計値が表示されます。
- 複数のボリュームがストライピングされていない限り、合計MB/sはボリュームの IBM Cloud コンソールの MiBpsに近いはずです。
- AvgLatは平均待ち時間。
- 次の2つのセクションでは、読み出しと書き込み操作の統計情報を提供する。
- < 5msのレイテンシは良好と考えられる
要約された結果は以下のセクションに表示される。
データが結果を導く
テストから得られた主な情報は以下の通り:
diskspd.exe -c100G -d300 -r -w40 -t4 -o2 -b64K -Sh -L D:\testfile.dat
入出力 | MiB/s | IOPS | 平均待ち時間 |
---|---|---|---|
合計 I/O | 82.03 | 1312.45 | 6.088 |
読み取り I/O | 49.20 | 787.14 | 7.282 |
書き込み I/O | 32.83 | 525.30 | 4.298 |
ログドライブ結果
テストから得られた主な情報は以下の通り:
diskspd.exe -c100G -d300 -r -w40 -t4 -o2 -b64K -Sh -L E:\testfile.dat
入出力 | MiB/s | IOPS | 平均待ち時間 |
---|---|---|---|
合計 I/O | 82.03 | 1312.49 | 6.088 |
読み取り I/O | 49.20 | 787.13 | 7.101 |
書き込み I/O | 32.83 | 525.36 | 4.570 |
Tempdbドライブの結果
テストから得られた主な情報は以下の通り:
diskspd.exe -c100G -d300 -r -w40 -t4 -o2 -b64K -Sh -L F:\testfile.dat
入出力 | MiB/s | IOPS | 平均待ち時間 |
---|---|---|---|
合計 I/O | 223.58 | 3577.33 | 2.231 |
読み取り I/O | 134.11 | 2145.77 | 3.615 |
書き込み I/O | 89.47 | 1431.56 | 0.156 |
フェイルオーバー・テスト
フェイルオーバー・テストは2つのテストで構成される:
可用性グループのフェイルオーバー・テスト
可用性グループのフェイルオーバーをテストするには、以下の手順に従ってください:
- bastionサーバーにRDPする。
- Bastionサーバー上でホストされている SQL Server Management Studio(SSMS)を使用して、プライマリ・レプリカに接続します。
- オブジェクト・エクスプローラでAlways On可用性グループを展開する。
- アベイラビリティ・グループを右クリックし、フェイルオーバーを選択してフェイルオーバー・ウィザードを開きます。
- プロンプトに従ってフェイルオーバー・ターゲットを選択し、アベイラビリティ・グループをセカンダリ・レプリカにフェイルオーバーします。
- 新しいプライマリ・レプリカ上でデータベースが同期状態にあることを確認する。
- 元のプライマリに戻り、データベースが同期状態にあることを確認する。
接続性フェイルオーバー・テスト
DNNリスナーへの接続性をテストするには、以下の手順に従ってください:
- bastionサーバーにRDPする。
- 要塞サーバ上でホストされている SQL Server Management Studio (SSMS)を開く。
- DNNリスナーに接続する。
- 新しいクエリーウィンドウを開き、quey
SELECT @@SERVERNAME
を実行して、どのレプリカが接続されているかを確認します。 - アベイラビリティグループをセカンダリレプリカにフェイルオーバーする。
SELECT @@SERVERNAME
を再度実行して、可用性グループがセカンダリ・レプリカ上でホストされていることを確認します。 フェイルオーバー時間を理解することは重要です
データベース負荷テスト
無料、オープンソース、またはライセンス供与された負荷テストツールは数多くありますが、 HammerDBは SQL Server データベースのパフォーマンスを実証するために使用できるオープンソースツールです。 このツールをbastionホストにダウンロードし、SQLサーバーの負荷テストに使用することができます:
- 以下の PowerShell コマンドを使用して、 HammerDB-4.1 1をbastionホストにダウンロードします:
$client = new-object System.Net.WebClient
$client.DownloadFile("https://github.com/TPC-Council/HammerDB/releases/download/v4.1/HammerDB-4.1-Win-x64-Setup.exe","C:\Users\Administrator\Downloads\HammerDB-4.1-Win-x64-Setup.exe")
-
Windowsでの HammerDBのインストールと起動にある自己解凍インストーラのインストール方法に従って、Bastionホストに HammerDBをインストールします。
-
クイックスタート に従って HammerDBを設定し、 requiredSQL サーバーで負荷テストを実行します。
HammerDB Best Practice for SQL Server Performance and Scalabilityの情報を確認してください。
他のバージョンの HammerDB,については、 HammerDBのダウンロードを参照してください。