• 3 min read

Azure VM 上での SQL Server の実行に Ultra SSD を使用してミッション クリティカルなパフォーマンスを実現

先日、Premium Storage 構成オプションで TPC-E プロファイル テスト ワークロードを実行した結果をまとめた「Azure VM 上で SQL Server を実行する場合のストレージ構成のガイドライン (英語)」という記事を公開しました。このテストを、さらに Ultra SSD でも実施しました。

今回は、SQL DB COGS データ担当シニア プログラム マネージャーを務める Mine Tokus の記事をご紹介します。

先日、SQL データベース エンジン ブログで、Premium Storage 構成オプションで TPC-E プロファイル テスト ワークロードを実行した結果をまとめた「Azure VM 上で SQL Server を実行する場合のストレージ構成のガイドライン (英語)」という記事を公開しました。このテストを、さらに Ultra SSD でも実施しました。Ultra SSD とはミッション クリティカルなワークロード向けの Microsoft Azure の新しいストレージ サービスで、1 ミリ秒未満のレイテンシと高スループットが実現されています。今回の記事では、このテストの詳細とその結果についてまとめました。

このテストでは、16 基のコア、112 GB の RAM、224 GB のローカル SSD を搭載した DS14_v2 VM を使用しました。この VM の入出力速度は、キャッシュを使用しない場合は 51,200 IOPS まで、キャッシュおよび一時ストレージでは 64,000 IOPS までスケーリングできます。ワークロードには、TPC-E ワークロードとして一般的な e コマースや取引に使用される OLTP アプリを使用しました。テスト ワークロードの読み書き I/O の比率はほぼ同じとしました。

サイズ vCPU メモリ:GiB 一時ストレージ (SSD) GiB キャッシュが有効な場合の一時ストレージの最大スループット:IOPS/MBps (キャッシュ サイズは GiB 単位) キャッシュが無効な場合の最大ディスク スループット:IOPS/MBps
Standard_DS14_v2 16 112 224 64,000/512 (576) 51,200/768

Premium Storage の構成

Premium Storage では 10 台の P30 ディスクを使用し、すべてのディスクで読み取りキャッシュを有効化しました。10 台すべてのディスクで 1 つのストレージ プールを作成し、テスト用 VM で 50,000 IOPS を達成しました。SQL Server のデータ、ログ、一時データベース ファイルは、10 台の P30 ディスクで構成される単一のストレージ プールに配置しました。これは、Azure Marketplace のイメージから作成された SQL VM に対してポータルからストレージ構成機能を使用する場合の SQL ファイルの配置とまったく同じです。

Ultra SSD の構成

Ultra SSD は 1 TB の Ultra SSD ディスク 1 台の構成で、入出力速度は最大 50,000 IOPS までスケーリング可能です。Ultra SSD は構成の柔軟性が高く、サイズと IOPS を個別にスケーリングできます。Premium Storage 構成では 50,000 IOPS を達成するために 10 台の P30 ディスクを使用しましたが、その容量は 10 TB となり、一方データベースで必要な容量は 1 TB 以下であるため容量に無駄があります。Ultra SSD では容量、IOPS、スループットの要件に適切に対応し、プロビジョニングした分だけの料金で使用することができます。また、1 台の Ultra SSD ディスクで 50,000 IOPS (最大 160,000) までスケーリングできるため、ストレージ プールを作成する必要がありません。1 台のディスクでデータ、ログ、一時データベースを含むすべての SQL Server ファイルをホストできます。Ultra SSD では、革新的なアーキテクチャとハードウェアによりすべての読み書きのレイテンシが 1 ミリ秒未満に抑えられるため、読み取りキャッシュを構成する必要がありません。このテストでもディスク キャッシュは構成しませんでした。

テスト結果

TPC-E プロファイル テスト ワークロードを 1 時間実行しました。このうち最初の 10 分間では負荷を構築し、40 分間は最大負荷で処理を実行しました。Ultra SSD 構成で実行した場合のディスクの読み書きの平均レイテンシは 1 ミリ秒未満、Premium Storage 構成で実行した場合の書き込みレイテンシは 4 ミリ秒、読み取りレイテンシは 1 ミリ秒でした。同一 VM で完全に同じ構成の SQL Server とテスト ワークロードを実行した場合、1 台の Ultra SSD ドライブを使用した方が 10 台の P30 ディスクを使用した場合と比較して SQL Server のスループットが 33% 高くなりました。テスト中の CPU 使用率は約 70% で、ワークロードの負荷が高くなるとこの数値も大きくなります。

  Premium Storage のストレージ プール Ultra SSD
ディスクの台数 10 1
読み取り専用キャッシュ すべてのディスクで使用 不使用
読み取り/書き込みキャッシュ すべてのディスクで不使用 不使用
データ、ログ、一時データベース ファイル 10 台の P30 ディスクでストレージ プールを構成 1 台の Ultra SSD ディスクを使用
平均読み取りレイテンシ 1 ミリ秒 1 ミリ秒未満
平均書き込みレイテンシ 4 ミリ秒 1 ミリ秒未満
平均転送速度 3 ミリ秒 1 ミリ秒未満
平均転送サイズ 9.5 KB 10.7 KB
1 秒あたりのバッチ要求数 13,100 17,500
1 秒あたりのビジネス トランザクション 1,688 1,980

このテストで示されたように、一般的な SQL Server の場合、レイテンシの差により Ultra SSD では Premium Storage と比較して大幅にスループットが向上します。Azure VM で SQL Server ワークロードを実行する場合、ワークロードに対して VM サイズとストレージのスケーリング上限を適切に選択し、最大効率を得られるストレージ構成で使用することをお勧めします。一時データベースをローカル SSD に配置すると、ストレージ コストはそのままでパフォーマンスを最大化することができます。Premium Storage で Blob キャッシュをホストすると、キャッシュを使用して読み取りレイテンシを抑えることができます。読み取りレイテンシの要件が比較的厳しいワークロードでは、十分な一時ストレージとキャッシュにより IOPS の上限が高い VM で、読み取りキャッシュを有効化した Premium Storage のストレージ プールにデータ ファイルを配置すると、高コスト効率で運用できます。

Ultra SSD のストレージ パフォーマンスはきわめて優れており、読み書きレイテンシも非常に低く抑えられます。データやログ ファイルのレイテンシやスループット要件に応じて Ultra SSD をご利用ください。SQL Server ワークロードでは、特にインメモリ OLTP を使用する場合、ログの書き込みレイテンシがとても重要です。ログ ファイルを Ultra SSD ディスクに配置すると、ストレージのレイテンシを非常に低く抑え、SQL Server のパフォーマンスを向上させることができます。Ultra SSD と Azure Premium Storage を組み合わせ、メモリやストレージに最適化された VM タイプを使用すると、Azure Virtual Machines でエンタープライズ レベルの SQL Server ワークロード実行環境を構築できます。