Проблемы с нестабильностью на 32-битных терминальных серверах Windows 2003 R2

У нас возникают проблемы с нестабильностью на некоторых наших 32-битных TS 2003 для Windows 2003.

После долгих поисков в Google я подозреваю, что у них заканчиваются записи в таблице страниц (PTE).

Из того, что я могу понять, это проблема при использовании ключа /3gb на 32-битных серверах Windows, а с TS'вы можете легко достичь предела.

Как вы можете убедиться, что это то, что происходит? У меня нет опыта работы с perfmon и ограниченный опыт работы с Process Explorer, и я действительно не знаю, что я ищу.

Дополнительная информация: Всегда, когда это происходит, список процессов диспетчера задач пуст, а также счетчики памяти очищаются. На сервере обычно всего 65 пользователей, но они используют MSO и другое бухгалтерское программное обеспечение. Некоторые из которых довольно плохо написаны и раздуты. Общее использование памяти на пользователя составляет 200-600 МБ, но наши серверы никогда не исчерпывают доступную оперативную память. На серверах установлено несколько принтеров, иногда до 20. Серверы работали без перебоев с 70-80 пользователями несколько лет назад, но были сокращены, так как казалось, что они стабилизировали их.

3 ответа

Решение

Память ядра Windows Server 2003 x86 по умолчанию недостаточно сконфигурирована для интенсивно используемого терминального сервера.

Чтобы просмотреть фактические используемые значения в работающей системе, вы можете использовать Process Explorer SysInternal в разделе "Просмотр"> "Информация о системе". Если система настроена на использование максимального объема выгружаемого пула и невыгружаемого пула, предел выгружаемого будет 512 МБ, а предел невыгружаемого будет 256 МБ.

введите описание здесь

Чтобы показать этот уровень детализации, надлежащие символы должны быть загружены в Параметры> Настроить символы:

введите описание здесь

Если физическое или не выгружаемое приложение приближается к пределу, это приведет к нестабильности системы. Значения реестра, которые настраивают эти максимальные ограничения, расположены по адресу:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management]
"PagedPoolSize"=dword:FFFFFFFF
"SystemPages"=dword:FFFFFFFF

Стоит отметить, что наличие большого объема физической памяти может быть бесполезным, так как окна x86 могут использовать лишь небольшой объем памяти ядра, и он не может превышать то, что показано в пределе. (Пределы памяти ядра x64 намного менее ограничены). Предел рассчитывается динамически во время запуска системы на основе доступной памяти и настроек реестра.

Вы можете получить более подробную информацию о том, что использует память ядра, с помощью следующих команд отладчика Windows:

!vm - показывает информацию, аналогичную ограничениям памяти ядра обозревателя процессов.
! poolused n - отображает информацию об использовании выгружаемого / невыгружаемого пула. Иногда это может быть полезно, если у драйвера есть утечка памяти, которая потребляет чрезмерную память ядра.

! Полноценная команда
http://msdn.microsoft.com/en-us/library/windows/hardware/ff564700%28v=vs.85%29.aspx

команда!vm
http://msdn.microsoft.com/en-us/library/windows/hardware/ff565602%28v=vs.85%29.aspx

Мне кажется, что от 70 до 80 пользователей 32-битного TS - это много. Наш номер планирования всегда был от 50 до 65 пользователей. Сколько оперативной памяти находится на серверах?

Использование /3GB на TS приведет к проблемам с производительностью и стабильностью. Я видел это из первых рук. Он начинается с невозможности загрузить профили пользователей и быстро перерастает оттуда. Я бы предложил удалить ключ /3GB и посмотреть, как это повлияет на производительность и стабильность.

Описание того, как определить использование памяти ядром, вы можете найти в моей статье Windows x64 - все то же самое, но очень разное, часть 2: память ядра, /3GB, PTE, (не) выгружаемый пул.

Короче говоря, используя WinDbg в сочетании с LiveKD, вы можете установить сеанс отладки в реальном времени на локальном компьютере. Отсюда легко запрашивать такие вещи, как бесплатные PTE, использование и максимальный (не) выгружаемый пул.

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