Пользователи тратят больше минуты на вход на сервер Windows 2008. LSM.exe работает с памятью более 100 МБ

Пользователи тратят больше минуты на вход на сервер Windows 2008. LSM.exe работает с памятью более 100 МБ

У нас есть 64-битный Windows Server 2008, на котором запущен удаленный рабочий стол.

Приложение lsm.exe (локальный менеджер сеансов) по-видимому, допускает утечку памяти. Хотя использование памяти довольно низкое после перезагрузки сервера, оно продолжает расти до тех пор, пока пользователи больше не смогут войти в систему.

На сервере нет звуковой карты и не установлено никакого программного обеспечения AV. Сервер полностью сервисно упакован. (Сервисный пакет 2)

У него 8 ГБ памяти. Им регулярно пользуются 60 пользователей. Кажется, нет никаких соответствующих сообщений журнала событий. Вход не запускает explorer. Он запускает скрипт "login.vbs". Этот скрипт входа создает несколько объектов wsShell и wScript.Network, но даже если я их закомментирую, поведение все равно будет таким же. (Примечание: я заменил скрипт .vbs на исполняемый файл. Никакой разницы)

Установлено несколько приложений, но следует отметить только одно: perfectbackup — решение для резервного копирования на основе Java.

Утечка памяти, похоже, происходит, когда люди входят/выходят из удаленного рабочего стола. Например, вход в систему изменит размер памяти lsm с 21 180 КБ до 21 512 КБ. Выход из системы изменит использование с 21 512 КБ до 12 668 КБ. Позже это может уменьшиться, но общее движение идет вверх. Кроме того, это будет расти быстрее и останется, если я войду/выйду несколько раз.

Что может быть причиной этого и как это исправить?

решение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. Мы отслеживаем использование памяти lsm.exe с помощью SCOM и видим немедленное снижение использования памяти, когда закрываем менеджеры ts в XP или 2003. Менеджер ts 2008, похоже, не вызывает этой проблемы».

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

Связанный контент