Hyper-Vのダイナミックメモリー機能を使うとSQLServerが高負荷状態になり応答しなくなる - SQL Server

Windows Server 2008 R2 SP1 でHyper-Vのダイナミックメモリ機能を利用した仮想マシン上でSQL Serverを稼働させるとSQL Server のCPU負荷が90%を超え高負荷状態になりサーバーが(Faildown)応答しなくなることがあります。

原因としては、SQLServerのメモリ使用量が(急激に)増えた時にサーバーへのメモリの割り当てが追い付かずに、仮想マシンのメモリ残量が減りSQLサーバーがメモリ不足エラーを発生させるためと考えられます。

対策方法

対策方法としては、以下が挙げられます。
  • ダイナミックメモリ機能を使わず、静的メモリ割り当てにする
  • メモリバッファを大きくし、メモリ割り当て優先度を上げる

が、メモリバッファを大きくして試してみた場合でもエラーが発生するケースがあるので、データベースサーバーは静的メモリ割り当てにするのが確実かと思われます。

メモリバッファを20%から100%にし、メモリ割り当て優先度を上げる設定例


発生するエラーの一例 (Windows アプリケーションログ)




著者
iPentec.com の代表。ハードウェア、サーバー投資、管理などを担当。
Office 365やデータベースの記事なども担当。
最終更新日: 2024-01-07
作成日: 2011-02-19
iPentec all rights reserverd.