
Позвольте мне узнать ваши мысли о проблемах производительности терминального сервера. На сервере в среднем размещается 25 пользователей, которые после подсчета некоторых цифр в среднем используют 600 МБ памяти с запущенными основными приложениями (веб-браузер, Adobe Reader, клиент IP-телефонии). Все пользователи находятся в той же локальной сети, что и сервер. Мы постоянно сталкиваемся с медленной реакцией и короткими зависаниями сеансов. Совокупное использование ЦП в среднем составляет 10%. Мне кажется странным, что система показывает 29 ГБ физической памяти, из которых 25 ГБ свободны. Использование файла подкачки составляет около 50%, в среднем 9 ГБ используется.
Некоторые характеристики сервера
ОС: Server 2003 32bit Enterprise с флагом /PAE ОЗУ: 32 ГБ ЦП: 2xQuad Core @ 2.27Ghz HD: RAID5 1.2 ГБ
После выполнения базового устранения неполадок с использованием монитора производительности я пришел к выводу, что проблемы с производительностью вызваны ограничением 32-разрядной ОС при обращении ко всем 32 ГБ физической памяти, даже несмотря на использование флага /PAE.
Может ли кто-нибудь подсказать какие-либо шаги по устранению неполадок, которые могут привести к более окончательному ответу?
Спасибо
решение1
Есть немного малодокументированной досады с PAE в Windows. Несмотря на то, что ОС теперь способна выделять всю оперативную память в системе, некоторые приложения по-прежнему не будут ее использовать.
При включенном PAE каждый процесс по-прежнему ограничен пределами 32-разрядной среды (4 ГБ)... если только он специально не создан для использования AWE
(Address Windowing Extensions).
Несмотря на всю эту "информацию" ... Я не думаю, что это та проблема, с которой вы столкнулись. (у вас есть процессы, превышающие 4 ГБ ОЗУ?) 9 ГБ подкачки для меня довольно много. Тем более, если учесть, что это терминальный сервер. Такой большой объем дискового ввода-вывода плохо сказывается на производительности. Как сказал mfinni, скорее всего, у вас проблемы с дисковым вводом-выводом, чем с памятью. Я видел точно такие же симптомы, которые вы описываете, только чтобы узнать, что мои дисковые накопители действительно не справляются с рабочей нагрузкой. Существует длинный список причин чрезмерного дискового ввода-вывода и столько же решений этой проблемы.
В моем случае я обнаружил, что служба спулера печати выделяла ОГРОМНЫЕ объемы оперативной памяти (которая в основном сбрасывалась в файл подкачки). Оказывается, в спулере печати есть давняя проблема, когда принтеры создаются/удаляются.
(при создании принтеров память выделяется для драйвера. При их удалении память не освобождается. В результате на терминальном сервере, где пользователи входят и выходят в систему в течение всего дня, появляется служба очереди печати с 2 ГБ+ выделенной оперативной памяти... и большая ее часть сбрасывается в файл подкачки) По возможности не используйте RDP для общего доступа к принтерам.
Есть еще много скрытых подводных камней, касающихся терминальных служб и памяти.
решение2
Недостаточно памяти для пользовательских сеансов может быть причиной. Объясните, что вы сделали в Perfmon, что привело вас к такому выводу, пожалуйста?
edit - Хорошо, я бы не стал так беспокоиться о файле подкачки. Это отличается от того, как работает VM в старых системах Unix; Windows будет более агрессивно выгружать страницы, чтобы освободить больше физической памяти.Как свести показатель использования файла подкачки к нулю?Если вы действительно беспокоитесь о подкачке, посмотрите на скорость чтения ввода-вывода страницы. Это частота жестких сбоев.
Слишком часто упускаемая из виду проблема с серверами терминалов Interactice — это дисковый ввод-вывод, который вызывает серьезные проблемы с пользовательским интерфейсом, не выскакивая немедленно из данных о производительности. Имеет ли ваша карта RAID BBWC, и вы используете кэширование записи? Если нет, вы почти наверняка видите проблемы — с помощью PerfMon посмотрите на длину очереди диска на томе RAID. Практическое правило (IIRC) заключается в том, что число, превышающее количество физических шпинделей в массиве, является плохим.
решение3
Windows 2003 x86 определенно испытывает трудности с производительностью в отношении памяти ядра. По умолчанию она имеет меньший максимум выгружаемого пула и максимум невыгружаемого пула, чем Windows XP. Мы использовали эти два значения по максимуму, но даже при этом довольно легко исчерпать память ядра.
Более подробная информация здесь: https://serverfault.com/a/389299/20701
29 ГБ на терминальном сервере x86 действительно тратятся впустую.
К вашему сведению, я бы не стал исключать эту сеть, даже если они находятся в одном сегменте локальной сети.