修正: SQL Server プロセスの仮想アドレス空間の使用可能メモリが少ない場合、Out of memory エラーが発生する

重要: このサポート技術情報 (以下「KB」) は、翻訳者による翻訳の代わりに、マイクロソフト機械翻訳システムによって翻訳されたものです。マイクロソフトは、お客様に、マイクロソフトが提供している全ての KB を日本語でご利用いただけるように、翻訳者による翻訳 KB に加え機械翻訳 KB も提供しています。しかしながら、機械翻訳の品質は翻訳者による翻訳ほど十分ではありません。誤訳や、文法、言葉使い、その他、たとえば日本語を母国語としない方が日本語を話すときに間違えるようなミスを含んでいる可能性があります。マイクロソフトは、機械翻訳の品質、及び KB の内容の誤訳やお客様が KB を利用されたことによって生じた直接または間接的な問題や損害については、いかなる責任も負わないものとします。マイクロソフトは、機械翻訳システムの改善を継続的に行っています。

英語版 KB:3074434
Notice
追加する必要がこの更新プログラムを適用した後、トレース フラグ T8075この変更を有効にするのには起動時のパラメーターとしてします。
現象
64 ビット バージョンの Microsoft SQL Server 2012 又は 2014 でクエリを実行すると、SQL Server エラー ログに次のような out-of-memory エラー メッセージが表示されます。

Failed allocate pages: FAIL_PAGE_ALLOCATION 513

クエリの実行を完了し、SOS_MEMORY_TOPLEVELBLOCKALLOCATOR の待機が発生するまでに時間がかかります。

については、次の点を確認するときは非常に低いの使用可能な仮想アドレス領域があることがあります。

  • セクションのプロセスとシステムの数、今後の利用可能な仮想メモリ
  • DMV: sys.dm_os_process_memory - virtual_address_space_available_kb の列
X64 での約 8 テラバイト (TB) は、まずこれらの値を処理し、続行上昇し、数ギガバイト (GB) に到達します。

したらステージで使用可能な仮想アドレス領域が非常に低く、クエリを実行しようとメモリの割り当ては CMEMTHREAD の待機のタイプにもあります。

次のデータ ポイントは、徐々 に増加する続行されます。
  • DMV: sys.dm_os_process_memory と sys.dm_os_memory_nodes の列の virtual_address_space_reserved_kb
  • メモリ マネージャー セクションのため、今後 VM 予約

通常、これらの値がほぼ 8 TB までの"最大サーバー メモリ値の倍数で増加します。
原因
SQL Server プロセスが、Total Server Memory = Target Server Memory = max server memory の状態に達した場合、SQL Server のメモリ マネージャーには一時的に成功するために新しい割り当てに複数の 8 KB ページを要求させるポリシーがあります。このような条件の下での繰り返しの割り当てパターンには、メモリ ブロックの断片化と仮想アドレス空間の消費量があります。場合はこのプロセスでは、何度も繰り返される、SQL Server の仮想アドレス空間を使い果たすになり、上記の現象が発生するが。
解決方法

修正プログラムの情報

この問題を解決するには、修正プログラムをインストールします ストアド プロシージャは、2014 年の SQL Server のリンク サーバーの別のストアド プロシージャを呼び出すときにエラーを修正します。.

必要条件

必要があります。 累積的な更新 3 SQL Server 2014 Service Pack 1 をインストールするこの修正プログラムを適用します。

お知らせ

追加する必要がこの更新プログラムを適用した後、トレース フラグ T8075この変更を有効にするのには起動時のパラメーターとしてします。

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

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

SQL Server 用の最新の累積的な更新をインストールする推奨事項。
SQL Server 用の新しい累積的な更新プログラムには、以前の累積的な更新プログラムに含まれていた、すべての修正プログラムおよびすべてのセキュリティ更新プログラムが含まれています。ダウンロードして、SQL Server の最新の累積的な更新プログラムをインストールすることをお勧めします。


この修正プログラムは、メモリの不足と、利用可能な仮想アドレス領域が発生する可能性がありますの継続的な削減の両方を防止します。
状況
マイクロソフトは、この問題を「対象製品」セクションに記載されているマイクロソフト製品の問題として認識しています。
詳細
  • 2012 R2 の Windows では、128 tb までと同じ大きさに拡張する仮想アドレス空間を使用できます。したがって、2012 R2 の Windows 環境でこの問題を気付かない場合があります。詳細については、Windows デベロッパー センターでは、次のトピックを参照してください。

    Windows および Windows Server のリリースでのメモリ制限
  • 仮想アドレス空間内の継続的な成長が表示されるは、この修正プログラムを適用した後でも場合、を使用して、大きなメモリのブロックを要求するクエリまたは操作を確認することができます、 Page_allocated 拡張イベントです。サンプル スクリプトは、次のようになります。

    CREATE EVENT SESSION [memory_tracking] ON SERVERADD EVENT sqlos.page_allocated(    ACTION(package0.callstack,sqlos.cpu_id,sqlos.task_address,sqlos.worker_address,sqlserver.database_id,sqlserver.query_hash,sqlserver.request_id,sqlserver.session_id,sqlserver.sql_text)    WHERE ([number_pages]>(1)))ADD TARGET package0.event_file(SET filename=N'E:\Data\MSSQL11.MSSQLSERVER\MSSQL\Log\memory_tracking.xel')WITH (MAX_MEMORY=4096 KB,EVENT_RETENTION_MODE=ALLOW_SINGLE_EVENT_LOSS,MAX_DISPATCH_LATENCY=30 SECONDS,MAX_EVENT_SIZE=0 KB,MEMORY_PARTITION_MODE=PER_CPU,TRACK_CAUSALITY=OFF,STARTUP_STATE=OFF)GO
    通常これらは、ログのバックアップとインデックス保守操作は、頻繁に発生します。

警告: この記事は自動翻訳されています

プロパティ

文書番号:3074434 - 最終更新日: 10/10/2016 02:16:00 - リビジョン: 9.0

Microsoft SQL Server 2012 Service Pack 2, Microsoft SQL Server 2014 Enterprise, Microsoft SQL Server 2014 Developer, Microsoft SQL Server 2014 Web, Microsoft SQL Server 2014 Standard, Microsoft SQL Server 2014 Service Pack 1

  • kbqfe kbsurveynew kbexpertiseadvanced kbfix kbmt KB3074434 KbMtja
フィードバック