TrustedInstaller.exe メモリリーク

現象

windows server 2008 R2でTrustedInstaller.exe がメモリリークを起こしている現象を発見した。
TrustedInstaller.exe だけで、1.5GB以上使用していた。

無駄に使っているため、解放したい。

microsoft からも情報があがっていた
https://support.microsoft.com/ja-jp/kb/2794283

原因

microsoftからの情報
TrustedInstaller.exe は、明示的に停止処理が実施されない場合、10 分以上のアイドル状態が継続すると、自動的に停止します。

一方、サーバー マネージャーの [最新の情報への更新] が有効 (既定) に構成されている場合、サーバーにインストールされている役割と機能の状態を定期的 (既定では 2 分間隔) に確認します。

この際、TrustedInstaller.exe に対して役割と機能のインストール状態の問い合わせが行われ、TrustedInstaller.exe は要求が行われる度に新しいログ セッションを作成し、そのためのメモリバッファーを確保します。このセッションおよびバッファーは TrustedInstaller.exe プロセスが終了するまで解放されません。

そのため、サーバー マネージャーの [最新の情報への更新] が有効に設定され、かつ、その更新間隔が 10 分以下である場合、TrustedInstaller.exe プロセスはアイドル状態を 10 分以上保つことが出来ず、自動的に停止されません。また、その間 TrustedInstaller.exe プロセスが消費するメモリが増加し続けます。

サーバ

windows server 2008 R2

対処方法

microsoftからの情報
方法1 :サーバーマネージャーを終了する
ログオン時にサーバー マネージャーが自動的に起動するのを停止するには、サーバー マネージャー上で以下のチェックをオンにします。
  [サーバーの概要] – [コンピューター情報] – [ログオン時にこのコンソールを表示しない]

方法2 :サーバーマネージャーの [最新の情報への更新] 機能を無効化する
サーバー マネージャーの [最新の情報への更新] 機能を無効化するには、[最新の情報への更新オプション] で [情報の更新を無効にする] を選択します。

方法3 : サーバーマネージャーの情報更新間隔を 11 分以上に設定する
サーバー マネージャーの情報更新間隔を変更するには、[最新の情報への更新オプション] で [次の間隔で情報を更新する] を選択し、時間を指定します。

ログオフとか再起動をすれば解放されるが、このサーバではユーザ単位でプロセス起動しているアプリがある。
そのため、別の施策を打つ必要があった。

自身で試した方法

タスクマネージャー -> [プロセス]タブ
-> TrustedInstaller.exeを右クリック
-> プロセスの終了

メモリは解放され、数秒後に新しいTrustedInstaller.exeが起動されたことを確認。

※追記
TrustedInstaller.exeのプロセス終了後、イベントログに下記エラーが記録される。その後、正常に起動しているか確認が必要。

イベントID:7031
Windows Modules Installer サービスは予期せぬ原因により終了しました。このサービスの終了は 1 回目です。次の修正操作が 120000 ミリ秒以内に実行されます: サービスの再開。

イベントID:7032
サービス コントロール マネージャーで、Windows Modules Installer サービスの予期せぬ終了後に修正操作 (サービスの再開) を実行しようとしましたが、この処置は次のエラーで失敗しました:
サービス インスタンスは既に実行されています。

◎参考
https://support.microsoft.com/ja-jp/kb/2794283
http://answers.microsoft.com/ja-jp/windows/forum/windows_7-performance/trustedinstaller%E3%81%AE%E3%83%91%E3%83%95/a2726d91-27d7-462f-9070-3bb3f54da4ba

以上

おすすめの記事