我们有一个运行远程桌面的64位Windows Server 2008。
应用程序lsm.exe(本地会话pipe理器)似乎在泄漏内存。 尽pipe重新启动服务器时,内存使用量非常低,但这种情况还是会持续上升,直到人们无法再login。
服务器没有声卡,没有安装任何AV软件。 服务器完全服务包装。 (Service Pack 2)
它有8GB的内存。 60个用户经常使用它。 似乎没有相关的事件日志消息。 login不启动资源pipe理器。 它启动一个“login.vbs”脚本。 这个login脚本创build了几个wsShell和wScript.Network对象,但是即使我评论这些,我仍然得到相同的行为。 (注意 – 我将.vbs脚本换成可执行文件,没有区别)
安装了多个应用程序,但唯一需要注意的是:perfectbackup – 基于java的备份解决scheme。
内存泄漏似乎发生在用户login/注销远程桌面时。 例如,login将会将lsm的内存大小从21,180K改为21512K。 注销将使用量从21,512K改为12,668K。 这可能会晚一些,但总体运动是向上的。 另外 – 这会更快,如果我login/注销几次,熬夜。
有什么可能导致这个,我将如何解决?
您的计算机上一般有多less个会话? 如果用户正在断开他们的会话,而不是注销,这可能会导致您遇到的问题。 有一件事我已经看到,解决这个问题的方法是强制断开连接的会话,在短暂的不活动(1到2小时)之后退出 – 这对我来说已经解决了这个问题。
也许是因为你正在使用一个非Windows的shell,你实际上没有正确注销terminal服务器。 强制断开连接可能不够?
尝试添加到脚本的末尾:
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 )
这看起来可能与您遇到的问题有关:
尽pipe服务器没有声卡,但是这可能涉及到RDP的远程audio播放function。
连接到terminal服务器时,应尝试禁用远程audio,并查看内存泄漏是否消失。
此外,您应该采取一个额外的故障排除步骤:在本地login到服务器的控制台时,或仅在使用terminal服务器时发生这种情况?
在微软论坛上发现以下内容。
“XP / 2003terminal会话pipe理器需要每隔几小时closures一次,这会重置lsm.exe的内存占用情况,我们用SCOM监视lsm.exe的内存使用情况,当我们closurespipe理器XP或2003年。2008年的经理似乎没有造成这个问题。“