KB2926223 - 修正: SQL Server 2012 または SQL Server 2014 での外部ページの処理中に NUMA 環境でパフォーマンスの問題が発生する

適用先
SQL Server 2012 Developer SQL Server 2012 Enterprise SQL Server 2012 Express SQL Server 2012 Standard SQL Server 2012 Web SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use)

現象

NUMA 環境では、Microsoft SQL Server で次の 1 つ以上のパフォーマンスの問題が発生します。

  • SQL Server プロセスで CPU 使用率が非常に高くなります。
  • クエリが完了するまでに長い時間がかかります。
  • アプリケーションまたは SQL Server エージェント ジョブでクエリ タイムアウトまたは接続タイムアウトが発生します。
  • クラスタ サービスによって SQL Server プロセスが再起動されます。

さらに、次の現象が発生することがあります。

  • sys.dm_os_wait_stats 動的管理ビュー (DMV) に対してクエリを実行するときのSOS_PHYS_PAGE_CACHE待機の種類の昇格した値
  • sys.dm_os_spinlock_stats DMV を照会するときの CMEMTHREAD 待機タイプとスピンロックSOS_SUSPEND_QUEUE値の昇格

解決策

累積的な更新プログラムの情報

この問題は、次の SQL Server の累積的な更新プログラムで最初に修正されました。

SQL Server 2014 用の累積的な更新プログラム 2 /en-us/help/2967546

SQL Server 2014 用の累積的な更新プログラム 1 /en-us/help/2931693

SQL Server 2012 SP1 の累積的な更新プログラム 9 /en-us/help/2931078

SQL Server 用の累積的な更新プログラムについて

SQL Server 用の新しい累積的な更新プログラムには、以前の累積的な更新プログラムに含まれていたすべての修正プログラムとすべてのセキュリティ修正プログラムが含まれています。 SQL Server の最新の累積的な更新プログラムを確認してください。

      

修正プログラムの情報
 マイクロソフトでは、この問題を修正する修正プログラムを提供しています。 ただし、この修正プログラムは、ここで説明する問題のみを修正することを目的としたものです。 この修正プログラムは、ここで説明する問題が発生しているシステムにのみ適用してください。

修正プログラムがダウンロード可能な場合は、このサポート技術情報の上部に「修正プログラムのダウンロードが利用可能」セクションがあります。 このセクションが表示されていない場合は、Microsoft カスタマー サービス & サポート にリクエストを送信し、修正プログラムを入手してください。

注: 別の問題が発生した場合、またはトラブルシューティングが必要な場合は、別のサービス リクエストを作成しなければならない場合があります。 この特定の修正プログラムの対象とならない追加のサポートに関する質問と問題には、通常のサポート料金が適用されます。 マイクロソフト カスタマー サービス サポートの電話番号一覧を参照、または別のサービス リクエストを作成するには、次のマイクロソフト Web サイトを参照してください。

/contactus/?ws=support 注: [修正プログラムのダウンロードが利用可能] フォームには、修正プログラムを使用できる言語が表示されます。 使用している言語が表示されない場合は、その言語の修正プログラムが存在しないことになります。

重要: この修正プログラムは、SQL Server アフィニティ マスクの設定に関係なく、NUMA システムにインストールされているすべての SQL Server インスタンスに推奨されます。 この修正プログラムは、SQL Server メモリ マネージャーの AWAY 処理パフォーマンスのボトルネックに対処します。
この問題は、次の SQL Server の累積的な更新プログラムで最初に修正されました。

回避策

これらの問題を回避するには、アプリケーションのログオンとクエリのタイムアウト値を増やします。

注: この回避策は、その効果が制限される可能性があります。 修正プログラムを適用して、「現象」に記載されている問題を解決することをお勧めします。

状態

Microsoft は、これが "適用対象" セクションに記載されている Microsoft 製品の問題であることを確認しました。

追加情報

Microsoft SQL Server のメモリ マネージャーが Non-uniform Memory Access (NUMA) 対応環境のノードにメモリを割り当てると、各ノードの目的のターゲットに到達するまで、Windows はローカル ノードとリモート ノード ("アウェイ" ページまたは "外部" ページと呼ばれます) からメモリを割り当てることができます。 これらの "アウェイ ページ" はパフォーマンスの観点からは理想的ではないため、SQL Server プロセスはアウェイ バッファーを適切なメモリ ノードに割り当てるか、これらのページをオペレーティング システムに解放しようとします。 この "AWAY 処理" は CPU を集中的に消費する可能性があり、CPU 使用率が増加した期間中はバッチ レートが低下します。

参考資料

外部ページの概念を理解する方法の詳細については、次の MSDN ブログ記事 Web サイトを参照してください。

使い方: SQL Server (NUMA ローカル、外部、および離れているメモリ ブロック)