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