ユーザーが 2008 Windows Server にログオンするのに 1 分以上かかります。LSM.exe は 100 MB 以上のメモリで実行されています。

ユーザーが 2008 Windows Server にログオンするのに 1 分以上かかります。LSM.exe は 100 MB 以上のメモリで実行されています。

リモート デスクトップを実行している 64 ビット Windows Server 2008 があります。

アプリケーション lsm.exe (ローカル セッション マネージャー) がメモリをリークしているようです。サーバーを再起動するとメモリ使用量は非常に低くなりますが、ユーザーがログインできなくなるまでメモリ使用量は増加し続けます。

サーバーにはオーディオ カードがなく、AV ソフトウェアもインストールされていません。サーバーは完全にサービス パックされています。(サービス パック 2)

メモリは 8GB です。60 人のユーザーが定期的に使用しています。関連するイベント ログ メッセージはないようです。ログインしてもエクスプローラーは起動しません。"login.vbs" スクリプトを起動します。このログイン スクリプトはいくつかの wsShell および wScript.Network オブジェクトを作成しますが、これらをコメント アウトしても同じ動作になります。(注: .vbs スクリプトを実行可能ファイルに置き換えました。違いはありません)

複数のアプリケーションがインストールされていますが、注目すべきは perfectbackup (Java ベースのバックアップ ソリューション) のみです。

メモリ リークは、リモート デスクトップにログイン/ログアウトするときに発生するようです。たとえば、ログインすると、lsm メモリ サイズが 21,180K から 21,512K に変更されます。ログアウトすると、使用量が 21,512K から 12,668K に変更されます。これは後で下がる可能性がありますが、一般的には増加傾向にあります。また、これはより速く上昇し、ログイン/ログアウトを数回行うと上昇したままになります。

何が原因でしょうか、またどうすれば修正できるでしょうか?

答え1

お使いのマシンでアクティブなセッションは、一般的にいくつありますか? ユーザーがログオフするのではなくセッションを切断すると、現在発生しているような問題が発生する可能性があります。この問題を解決するために私が目にした方法の 1 つは、短時間 (1 ~ 2 時間) の非アクティブ状態が続いた後、切断されたセッションを強制的にログアウトすることです。この方法で、過去にこの種の問題を解決しました。

答え2

おそらく、Windows 以外のシェルを使用しているため、ターミナル サーバーから適切にログアウトしていない可能性があります。強制的に切断するだけでは不十分でしょうか?

スクリプトの最後に以下を追加してみてください:

 Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate,(Shutdown)}\\.\root\cimv2")
 Set colOperatingSystems = objWMIService.ExecQuery ("SELECT * FROM Win32_OperatingSystem")
 For Each objOperatingSystem in colOperatingSystems
 ObjOperatingSystem.Win32Shutdown(4)
 Next 

単なる推測です(そして、はい、4は強制ログオフです(http://msdn.microsoft.com/en-us/library/aa394058%28VS.85%29.aspx

答え3

これは、発生している問題に関連している可能性があります:

http://www.windows-now.com/blogs/kmkenney/archive/2007/05/21/workaround-for-lsm-exe-handle-and-memory-leak.aspx

サーバーにはオーディオカードはありませんが、多分これには、RDP のリモート オーディオ再生機能が関係する可能性があります。

ターミナル サーバーに接続するときにリモート オーディオを無効にして、メモリ リークがなくなるかどうかを確認してください。


また、実行する必要がある追加のトラブルシューティング手順: これは、サーバーのコンソールにローカルでログオンしているときに発生しますか、それともターミナル サーバーを使用しているときにのみ発生しますか?

答え4

Microsoft フォーラムで次のものを見つけました。

「XP/2003 ターミナル セッション マネージャーは、数時間ごとに閉じる必要があります。これにより、lsm.exe のメモリ フットプリントがリセットされます。SCOM を使用して lsm.exe のメモリ使用量を監視していますが、XP または 2003 で ts マネージャーを閉じると、メモリ使用量がすぐに減少します。2008 ts マネージャーではこの問題は発生しないようです。」

http://social.technet.microsoft.com/Forums/en-US/winserverTS/thread/78b75882-870f-4a4a-8c4d-f8690c7c124a

関連情報