エクスポート (0) 印刷
すべて展開

Azure Virtual Machines における SQL Server のパフォーマンスに関するベスト プラクティス

更新日: 2014年6月

Azure の仮想マシンでの SQL Server の実行では、オンプレミス サーバー環境で SQL Server に適用できるのと同じデータベース パフォーマンス チューニング オプションを使用し続けることをお勧めします。ただし、パブリック クラウド内のリレーショナル データベースのパフォーマンスは、仮想マシンのサイズ、データ ディスクの構成など、多くの要因によって異なります。

このトピックでは、Virtual Machines (VM) で SQL Server パフォーマンスを最適化するためのベスト プラクティスを取り上げます。

重要な注意事項:総合的な詳細については、「Azure 仮想マシンにおける SQL Server のパフォーマンス ガイダンス」を参照してください。

次にクイックチェック リストを示します。

  • SQL Server VM に最小標準プラン A2 を使用します。

  • ストレージ アカウントと SQL Server VM を同じリージョンに置きます。

  • ストレージ アカウントで Azure ジオレプリケーションを無効にします。

  • データベース ストレージまたはロギングにはオペレーティング システムまたは一時ディスクを使用することを避けます。

  • Azure データ ディスク キャッシュ オプションを使用することを避けます (キャッシュ ポリシー = なし)。

  • 複数の Azure データ ディスクをストライプし、IO スループットを増やします。

  • フォーマットし、割り当てサイズを記録します。

  • データとログ ファイルの I/O パスを分離し、データとログの専用 IOP を獲得します。

  • データベース ページの圧縮を有効にします。

  • データ ファイルの瞬時ファイル初期化を有効にします。

  • データベースの自動拡張を制限するか、無効にします。

  • データベースの自動縮小を無効にします。

  • システム データベースを含む、すべてのデータベースをデータ ディスクに移動します。

  • SQL Server エラー ログとトレース ファイル ディレクトリをデータ ディスクに移動します。

  • SQL Server パフォーマンス修正を適用します。

  • 既定の場所を設定します。

  • ロックされたページを有効にします。

  • BLOB ストレージに直接バックアップします。

詳細については、次のサブ セクションのガイドラインに従ってください。

パフォーマンスに慎重を期するアプリケーションの場合、次の仮想マシン サイズを利用することをお勧めします。

  • SQL Server Enterprise Edition: 標準プラン A3 以降

  • SQL Server Standard Edition: 標準プラン A2 以降

サポートされる仮想マシン サイズの最新情報については、「Azure の仮想マシンおよびクラウド サービスのサイズ」を参照してください。

また、SQL Server 仮想マシンと同じデータ センターで Azure ストレージ アカウントを作成し、転送遅延を減らすことをお勧めします。ストレージ アカウントを作成するときは、geo レプリケーションを無効にします。複数のディスクでの一貫性のある書き込み順序が保証されないためです。代わりに、2 つの Azure データ センター間で SQL Server 災害復旧テクノロジを構成することを検討します。詳細については、「Azure の仮想マシン内の SQL Server の高可用性と災害復旧」を参照してください。

Azure Virtual Machine を作成すると、プラットフォームによって、少なくとも 1 つのディスクがオペレーティング システム ディスク用に VM に接続されます。このディスクは、ストレージ内にページ BLOB として格納されている VHD です。追加のディスクをデータ ディスクとして仮想マシンに接続することもできます。これらのディスクは、ページ BLOB としてストレージに格納されます。Azure の仮想マシンには、一時ディスクと呼ばれる別のディスクも存在します。これはノード上のディスクであり、一時的な書き込み領域として使用できます。

オペレーティング システム ディスクは、オペレーティング システムの実行中のバージョンとして起動およびマウントできる VHD であり、C ドライブというラベルが付けられます。

オペレーティング システム ディスクの既定のキャッシュ ポリシーは読み取り/書き込みです。パフォーマンスに慎重を期するアプリケーションの場合、オペレーティング システム ディスクの代わりにデータ ディスクを利用することをお勧めします。データ ディスクに対してなしになっている、既定のキャッシュ ポリシーを変更せず、仮想マシンに 1 つまたは複数のデータ ディスクを接続します。

一時ストレージ ドライブには D: ドライブというラベルが付けられますが、永続的ではなく、Azure BLOB ストレージには保存されません。D: ドライブにはデータやログ ファイルを格納しないでください。ドライブはリセットされます。

D シリーズの Virtual Machines (VM) を使用している場合に限り、D ドライブに tempdb またはバッファー プール拡張を格納してください。他の VM シリーズとは異なり、D シリーズ VM の D ドライブは SSD ベースです。そのため、一時オブジェクトを大量に使用するか、メモリに収まらないワーキング セットを持つワークロードのパフォーマンスを改善できます。詳細については、「Using SSDs in Azure VMs to store SQL Server TempDB and Buffer Pool Extensions (Azure VM で SSD を使用して SQL Server TempDB およびバッファー プール拡張を格納する)」を参照してください。

  • データ ディスクの数: スループットに慎重を期するアプリケーションの場合、VM サイズで許可される最大数のディスクを接続することをお勧めします。作業負荷が余裕をもって最大 IOP 制限内に収まっている場合、データ ディスクを追加しても待機時間は改善されません。

    ディスクごとの最大 IOP に関する詳細については、「Azure の仮想マシンおよびクラウド サービスのサイズ」を参照してください。

  • キャッシュ ポリシー: データ ディスクに対しては、読み取りと書き込みの両方のキャッシュが既定で無効になっています。この既定の設定を使用し、データ ディスクでキャッシングを有効にしないでください。ディスク キャッシュの詳細については、「ディスクおよびイメージの管理」を参照してください。

    ディスク キャッシュの構成の手順については、「Set-AzureOSDisk」、「Set-AzureDataDisk」、および「Azure PowerShell コマンドレットを使用した仮想マシンの管理」を参照してください。

  • NTFS アロケーション ユニット サイズ: データ ディスクをフォーマットするとき、データとログのファイルに 64-KB アロケーション ユニット サイズを使用し、また、tempdb を使用することをお勧めします。

  • ディスク ストライピング: 次のガイドラインに従うことをお勧めします。

    • Windows 8/Windows Server 2012 以降の場合、ストレージ領域を使用します。ストライプ サイズを OLTP 作業負荷の場合は 64 KB に設定し、データ ウェアハウス作業負荷の場合は 256 KB に設定し、パーティションの不均衡に起因するパフォーマンス低下を回避します。また、column count = number of physical disks を設定します。ストレージ領域の設定方法については、「Windows PowerShell のストレージ領域コマンドレット」を参照してください。

    • Windows 2008 R2 以前の場合、ダイナミック ディスク (OS ストライピング ボリューム) を利用できます。ストライプ サイズは常に 64 KB です。Windows 8/Windows Server 2012 の場合、このオプションはサポートされていません。詳細については、「仮想ディスク サービスは Windows Storage Management API に移行中である」のサポート ポリシーを参照してください。

  • データとログのファイルの配置: 作業負荷がログを集中的に使う種類ではなく、専用の IOP を必要としない場合、ストレージ プールを 1 つだけ構成します。そうでない場合、4 つ以上のディスクを接続できる VM に関しては、個別のディスクまたはストレージ プールにデータとログのファイルを置きます。標準プラン A2 に関しては、データ ファイルと tempdb に 3 つのデータ ディスクを用意し、ログ ファイルに 1 つのデータ ディスクを用意する構成をお勧めします。作業負荷の集中タイプ (データまたはログ) に関係なく、適宜、データ ストレージ プール専用またはログ ストレージ プール専用のディスク数を調整できます。

  • 大量の I/O が発生するワークロードのパフォーマンスを向上させるために、データベース ページの圧縮を使用することを検討します。ただし、データ圧縮はデータベース サーバーの CPU 消費量を増加させることがあります。

  • Azure と外部との間で転送が行われる場合に、データ ファイルの圧縮を検討してください。

  • 初期ファイル割り当てに必要な時間を短縮するために、ファイルの瞬時初期化の有効化を検討してください。ファイルの瞬時初期化を使用するには、SE_MANAGE_VOLUME_NAME で SQL Server (MSSQLSERVER) サービス アカウントを付与し、ボリュームの保守タスクを実行セキュリティ ポリシーに追加する必要があります。Azure 用の SQL Server プラットフォーム イメージを使用している場合は、既定のサービス アカウント (NT Service\MSSQLSERVER) は、ボリュームの保守タスクの実行セキュリティ ポリシーに追加されません。つまり、ファイルの瞬時初期化は、SQL Server Azure プラットフォーム イメージでは無効です。ボリュームの保守タスクを実行セキュリティ ポリシーに SQL Server サービス アカウントを追加した後、SQL Server サービスを再起動してください。詳細については、「データベース ファイルの初期化」を参照してください。

  • autogrow は偶発的な予想外の増加として考慮されます。日常のデータとログの増加を自動増加で管理しないでください。自動増加が使用される場合、サイズ切り替えを使用してファイルを事前に増やします。

  • autoshrink を無効にしてパフォーマンスに悪影響を与える不要なオーバーヘッドを回避します。

  • SQL Server 2012 を実行している場合は、Service Pack 1 Cumulative Update 10 をインストールします。この更新には、SQL Server 2012 の一時テーブル ステートメント「SELECT INTO」を実行したときに I/O でパフォーマンスが低下する問題を修正するためのプログラムが含まれています。詳細については、「サポート技術情報の記事」を参照してください。

  • システム データベース (msdbtempdb など)、バックアップ、SQL Server の既定データとログ ディレクトリをキャッシュされないデータ ディスクに移し、パフォーマンスを改善します。その後、次のアクションを実行します。

    • XEvent とトレース ファイルのパスを調整します。

    • SQL エラー ログ パスを調整します。

    • 既定のバックアップ パスを調整します。

    • 既定のデータベースの場所を調整します。

  • ロックされたページを確立し、IO とページング行動を減らします。

一部のデプロイでは高度な設定技法を利用することでパフォーマンスをさらに改善できることがあります。次の一覧は、パフォーマンス改善に役立てる SQL Server 機能をいくつか紹介したものです。

  • Windows Azure Storage へのバックアップ: Azure Virtual Machines で実行される SQL Server のバックアップを実行するとき、SQL Server Backup to URL を利用できます。この機能は SQL Server SP1 CU2 より利用できます。接続されているデータ ディスクへのバックアップに推奨されます。Azure Storage との間でバックアップまたは復旧を行うときは、SQL Server Backup to URL Best Practices and Troubleshooting and Restoring from Backups Stored in Azure Storage にある推奨事項に従ってください。

    SQL Server 2012 より前の場合、SQL Server Backup to Azure Tool を利用できます。このツールを利用すれば、複数のバックアップ ストライプ ターゲットによりバックアップ スループットを増加できます。

  • SQL Server Data Files in Azure:この新しい機能 Azure 内の SQL Server データ ファイル は、SQL Server 214 から使用できます。Azure でデータ ファイルを使用して SQL Server を実行すると、Azure データ ディスクを使用する場合に相当するパフォーマンス特性を確認できます。

関連項目

表示:
© 2014 Microsoft