Windows Server 2008 R2 でスプーラサービスのメモリ使用量が異常に増える
Windows Server 2008 R2 に XenApp 6.0 をインストールしている環境でスプーラサービス(spoolsv.exe)が異常にメモリを使用しているのを発見。
稼働していると200MB、300MB、400MBと少しずつですがどんどん増え続け、メモリを大量に消費するとユーザーが(管理者アカウントも含めて)ログオンできない状態になりました。
ログオン画面でユーザーとパスワードを入力してEnterを押してもログオンの処理が終わらず、デスクトップが現れません。
タスクマネージャのプロセス一覧(正常な状態)

クリックで拡大
この「Spoolsv.exe」のメモリ使用量がどんどん上昇します。
この構成ではXenApp サーバーにプリンターを作成し、接続してきたクライアントはそのプリンターに対して印刷しています。
プリンターマッピングはしていません。
状況としては「Windows Server 2008 R2 へログオンして、プリンターに印刷した」と同じことかなと思います。
調べてみたところ以下のナレッジがありました。
文書番号: 2796647
Windows 7 または Windows Server 2008 R2 で WMI クエリを実行するアプリケーションを実行すると、Spoolsv.exe プロセスでメモリ リークが発生します。
文中には「ドメイン環境では、コンピューターである場合は、この問題は発生しません。」と記載があります。
(機械翻訳なので少し日本語おかしいですが…)
今回現象が発生しているのはActive Directory ドメインのメンバーサーバーとして構成されているものなので該当しないものかと思いましたが、
他に情報がないことと、ドメイン環境と非ドメイン環境でスプーラサービスに与える影響に違いがある根拠がわからなかったのでとりあえずインストールしてみることにしました。
- http://support.microsoft.com/kb/2796647/jaへアクセスします。
「修正プログラムのダウンロード」をクリックします。

クリックで拡大 - 使用許諾契約をよく読んで「同意する」をクリックします。

クリックで拡大 - 「修正プログラムを選択する」の欄で修正プログラムを選択し、メールアドレスと表示されている文字を入力して「リクエストを送信する」をクリックします。

クリックで拡大 - しばらくすると(ほぼすぐに)先程入力したメールアドレス宛てにメールが届きます。
メールの最後の方にダウンロード先のアドレスが記載されているのでそれをクリックして修正プログラムをダウンロードします。

クリックで拡大 - ダウンロードしたプログラムを起動します。

クリックで拡大 - すごく小さく表示されているのがなぜかわかりませんが、左のボタンをクリックします。
↓原寸です。

クリックで拡大 - この画面もすごく小さいのですが解凍先を入力する項目のはずなので解凍先を指定して左のボタンをクリックします。

クリックで拡大 - 「成功しました」とか言ってるはずなのでOKボタンと思われるボタンをクリックします。

クリックで拡大 - 「Windows6.1-KB2796647-x64.msu」ファイルをダブルクリックします。

クリックで拡大 - インストール確認画面が表示されるので「はい」をクリックしてインストールを開始します。

クリックで拡大 - インストール中。
しばらく待ちます。

クリックで拡大 - インストールが完了したら「今すぐ再起動」をクリックして終了します。

クリックで拡大
※この環境では修正プログラムをインストールした後はメモリの異常な使用は見られなくなりました。
ドメイン環境でも有効であるように思われます。