私たちのサービスは、クライアントのサーバーで夜間にスリープ状態になり、その後、目覚めるのに苦労する傾向があります。発生しているように見えるのは、プロセスヒープ(場合によっては数百MB)がスワップファイルに移動されることです。これは、当社のサービスが使用されておらず、他のサービス(DBバックアップ、AVスキャンなど)の実行がスケジュールされている夜間に発生します。これが発生すると、数時間非アクティブになった後、サービスへの最初の呼び出しに最大数分かかります(その後の呼び出しには数秒かかります)。
これは仮想メモリ管理の問題であると確信しており、OSにサービスを物理メモリに保持させるという考えは本当に嫌いです。これを行うと、サーバー上の他のプロセスに悪影響を及ぼし、サーバー全体のスループットが低下することを私は知っています。そうは言っても、私たちのクライアントは私たちのアプリが応答することを望んでいます。彼らは毎晩の仕事にもっと時間がかかるかどうか気にしません。
Windowsに物理メモリにページを保持させる方法があることを漠然と覚えていますが、私はその考えを本当に嫌います。私は、より高いレベルの機能を開始する内部または外部のウォッチドッグにもっと傾いています(ほとんど何もせず、違いがない内部スケジューラがすでにいくつかあります)。そのようなサービスを提供するサードパーティのツールがあれば、それは同じくらい良かったでしょう。
この種の問題に対するコメント、推奨事項、および一般的な解決策をお聞かせください。このサービスはVC2005で記述されており、Windowsサーバーで実行されます。