私のSQLサーバーログ(2005 SP4)に、数秒ごとに次のメッセージが表示されます。
「AppDomain XXX [DataBase.dbo [runtime]、YYY]は、メモリ不足のためアンロードするようにマークされています」
私たちのサーバー:
Intel Xeon CPU X5675 x 2(6コア)3.07Ghz
畏敬の念
Memtoleaveまたはvasに関する多くの記事を読みましたが、問題を診断する方法がわかりません。
何か案が ?
マイクロソフトには、この動作に関する KB記事 があります。 32ビットアプリケーションを備えた32ビットOSを入手したため、プロセスのアドレス空間は4 GiBです。 AWEはより多くのメモリにアクセスするために使用できますが、バッファプールの使用に対してのみ制限されます。 ドキュメント に従って:
SQL Serverバッファープールは、AWEマップメモリを完全に利用できます。ただし、SQL Serverの仮想アドレス空間に対して動的にマップおよびマップ解除できるのはデータベースページだけであり、AWEを通じて割り当てられたメモリを最大限に活用できます。 AWEは、仮想アドレス空間に永続的に存在する追加のユーザー、スレッド、データベース、クエリ、およびその他のオブジェクトを直接サポートすることはできません。
短期的な解決策:CLRコードがメモリ使用量を最小限に抑えることを確認します。
長期的なソリューションについては、64ビットにアップグレードしてください。
補遺
Kimberly TrippがDBAの観点からCLRに関する ホワイトペーパー について書きました。彼女には、CLRリソースの使用状況を追跡するために使用できるいくつかのNiceクエリとPerfmonカウンターがあります。