現象
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 /en-us/help/2967546 の累積的な更新プログラム 2
SQL Server 2014 /en-us/help/2931693 の累積的な更新プログラム 1
SQL Server 2012 SP1 /en-us/help/2931078 の累積的な更新プログラム 9
SQL Server 用の累積的な更新プログラムについて
SQL Serverの各新しい累積的な更新プログラムには、すべての修正プログラムと、以前の累積的な更新プログラムに含まれていたすべてのセキュリティ修正プログラムが含まれています。 SQL Serverの最新の累積的な更新プログラムを確認してください。
修正プログラムの情報
マイクロソフトでは、この問題を修正する修正プログラムを提供しています。 ただし、この修正プログラムは、ここで説明する問題のみを修正することを目的としたものです。 この修正プログラムは、ここで説明する問題が発生しているシステムにのみ適用してください。
修正プログラムがダウンロード可能な場合は、このサポート技術情報の記事の上部に 「修正プログラムのダウンロード」セクションがあります。 このセクションが表示されていない場合は、Microsoft カスタマー サービス & サポート にリクエストを送信し、修正プログラムを入手してください。
注 追加の問題が発生した場合、またはトラブルシューティングが必要な場合は、別のサービス要求を作成する必要がある場合があります。 通常のサポート コストは、この特定の修正プログラムに該当しない追加のサポートの質問や問題に適用されます。 マイクロソフト カスタマー サービス サポートの電話番号一覧を参照、または別のサービス リクエストを作成するには、次のマイクロソフト Web サイトを参照してください。
http://support.microsoft.com/contactus/?ws=support メモ "修正プログラムのダウンロードが可能" フォームには、修正プログラムが利用可能な言語が表示されます。 使用している言語が表示されない場合は、その言語の修正プログラムが存在しないことになります。
重要 この修正プログラムは、SQL Serverアフィニティ マスクの設定に関係なく、NUMA システムにインストールされているSQL Server インスタンスに対して推奨されます。 この修正プログラムは、SQL Server メモリ マネージャーの AWAY 処理パフォーマンスのボトルネックに対処します。
この問題は、SQL Serverの次の累積的な更新プログラムで最初に修正されました。
回避策
これらの問題を回避するには、アプリケーションのログオンとクエリのタイムアウト値を増やします。
注 この回避策は、その効果に制限される場合があります。 修正プログラムを適用して、「現象」セクションに記載されている問題を解決することをお勧めします。
状態
Microsoft は、これが "適用対象" セクションに記載されている Microsoft 製品の問題であることを確認しました。
追加情報
Microsoft SQL Serverのメモリ マネージャーが、一様でないメモリ アクセス (NUMA) が有効な環境でノードにメモリを割り当てると、Windows は、各ノードの目的のターゲットに到達するまで、ローカル ノードとリモート ノード ("離れている" ページまたは "外部" ページ) の両方からメモリを割り当てることができます。 これらの "退席ページ" はパフォーマンスの観点からは理想的ではないため、SQL Serverプロセスは、適切なメモリ ノードにアウェー バッファーを割り当てるか、これらのページをオペレーティング システムに解放しようとします。 この "AWAY 処理" は CPU を集中的に使用し、CPU 使用率の増加期間中にバッチ レートが低下する可能性があります。
参考資料
外部ページの概念を理解する方法の詳細については、次の MSDN ブログ投稿 Web サイトを参照してください。