現象
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 サイトを参照してください。