Пользователям требуется более минуты, чтобы войти на сервер Windows 2008. LSM.exe работает на 100 МБ + памяти

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

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

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

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

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

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

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

4 ответа

Решение

Нашел следующее на форумах Microsoft.

"Диспетчер сеансов терминала XP/2003 необходимо закрывать раз в несколько часов. Это сбрасывает объем памяти lsm.exe. Мы отслеживаем использование памяти lsm.exe с помощью SCOM и видим немедленное снижение использования памяти, когда закрываем ts менеджеры на XP или 2003. Менеджер 2008 ts, кажется, не вызывает эту проблему."

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

Сколько сессий обычно активно на вашей машине? Если пользователи отключают свои сеансы вместо выхода из системы, это может вызвать проблемы, которые вы видите. Одна вещь, которую я видел, чтобы решить эту проблему, это заставить отключенные сеансы выходить из системы после короткого периода бездействия (от 1 до 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)

Похоже, это может быть связано с проблемой, с которой вы столкнулись:

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

Хотя на сервере нет звуковой карты, возможно, это может включать возможность удаленного воспроизведения звука RDP.

Вы должны попытаться отключить удаленный звук при подключении к серверу терминалов и посмотреть, исчезла ли утечка памяти.


Кроме того, вы должны предпринять дополнительный шаг по устранению неполадок: это происходит при локальном входе в консоль сервера или только при использовании сервера терминалов?

Другие вопросы по тегам