ローカルのIntelSSDドライブ上で実行されるSQLデータベースを実行するように構成されたSQLServer Basic Availability Groups(BAG)があります。 SQLServerのパフォーマンスを向上させるためにデータベースをSQLServerフェールオーバークラスターインスタンス(FCI)に移動するように求められました。ソフトウェア定義のストレージを搭載したHA仮想ドライブ上でデータベースを実行します。私の経験から、ハイパーコンバージドVSANは読み取り操作を2倍にする必要があるため、SQL IOレイテンシー(データベースからの読み取りの場合)は2倍に減少するはずです。
そのため、SQLBAGとSQLFCIの2つのシナリオがベンチマークされました。これらの2つのケースでは、512GBの最大サーバーメモリRAMがSQLServerに設定され、キャッシュを除外し、データベーステーブルから公正な読み取り操作を実行しました。
Management Studio SQLとSQLQueryStressは、テスト目的で使用されました。 SQLステートメントはSELECT TOP (500000) ... FROM [SQL].[dbo].[table]
で、最初の500K行を読み取ります。
SQLBAGクエリの結果は次のとおりです。
Management Studio SQL:クエリ時間= 15秒
SQLQueryStress:
スレッド数= 1:クエリ時間= 2秒
スレッド数= 2:クエリ時間= 2秒
スレッド数= 4:クエリ時間= 2秒
スレッド数= 8:クエリ時間= 2秒
スレッド数= 10:クエリ時間= 3秒
スレッド数= 12:クエリ時間= 4秒
SQL FCIシナリオは、Windows Server 2016を実行している2つの同一のハードウェアノードのWindowsフェールオーバークラスター上に構築されました。ストレージは、Intel SSDドライブ上のソフトウェア定義ストレージ(ハイパーコンバージドVSAN)を使用して構成されました。そのため、仮想ディスクはフェールオーバークラスターにクラスターディスクとして提示されました。クラスターディスクのテストには、diskspdを使用しました
Diskpdの結果は次のとおりです。
4kランダム読み取り– 76K IOPS(SSD)、153K IOPS(ハイパーコンバージドVSAN-クラスターディスク)
8kランダム読み取り– 45K IOPS(SSD)、89K IOPS(ハイパーコンバージドVSAN-クラスターディスク)
予想どおり、ハイパーコンバージドVSANはストレージパフォーマンスを2倍にしました。次に、SQL FCIは、そのクラスターディスクにデータベースファイルを格納するように構成されました。データベースの別のコピーがサーバーにアップロードされ、同じテストが実行されました。
SQLFCIクエリの結果は次のとおりです。
Management Studio SQL:クエリ時間= 15秒
SQLQueryStress:
スレッド数= 1:クエリ時間= 9秒
スレッド数= 2:クエリ時間= 8秒
スレッド数= 4:クエリ時間= 9秒
スレッド数= 8:クエリ時間= 8秒
スレッド数= 10:クエリ時間= 10秒
スレッド数= 12:クエリ時間= 12秒
質問は次のとおりです。
ManagementStudioを介してベンチマークされたSQLBAGとSQLFCIのレイテンシが同じであるのはなぜですか?
SQL FCIデータベースのレイテンシを3〜4倍に増やす可能性があるのは何ですか?
FCIは歴史であり、新しい展開ではAlwasysOn可用性グループ(AG)を使用します。これははるかに高速で(SQL Serverは何を複製するかを知っているため)、少なくともBasicAGがSQLServerのStandardエディションに含まれています。