Решение проблем производительности сервера терминалов 2003
Позвольте мне высказать ваши мысли о проблемах производительности терминального сервера. Сервер обслуживает в среднем 25 пользователей, которые, после запуска некоторых чисел, в среднем используют 600 МБ памяти при запущенных основных приложениях (веб-браузер, Adobe Reader, клиент IP-телефона). Все пользователи находятся в одной локальной сети с сервером. Мы постоянно испытываем медленный отклик и короткие блокировки сеанса. Комбинированное использование процессора составляет в среднем 10%. Что мне кажется странным, так это то, что система показывает 29 ГБ физической памяти, а 25 ГБ свободной. Использование файла подкачки составляет около 50%, в среднем используется 9 ГБ.
Некоторые спецификации сервера
ОС: Server 2003, 32-разрядная версия Enterprise с флагом /PAE. ОЗУ: 32 ГБ. ЦП: 2xQuad Core @ 2,27 ГГц. HD: RAID5 1,2 ГБ.
После базового устранения неполадок с использованием монитора производительности, я могу поверить, что проблемы с производительностью вызваны ограничением 32-битной ОС при обращении к полной 32 ГБ физической памяти, даже если используется флаг /PAE.
Может кто-нибудь предложить что-то, шаги по устранению неполадок, которые могут привести к более убедительному ответу?
Спасибо
3 ответа
Недостаточно памяти для пользовательских сессий может делать это. Объясните, что вы сделали в Perfmon, что приводит вас к такому выводу, пожалуйста?
редактировать - хорошо, я бы не стал так беспокоиться о файле подкачки. Это отличается от того, как VM работает на старых системах Unix; Windows будет более агрессивно распределять информацию, чтобы освободить больше физической памяти. Как довести показатель использования файла подкачки до нуля? Если вы действительно беспокоитесь о поиске страниц, посмотрите на скорость чтения страниц ввода-вывода. Это жесткий процент ошибок.
Слишком часто упускаемая из виду проблема с серверами терминалов Interaice - дисковый ввод-вывод, который вызывает серьезные проблемы с пользовательским интерфейсом, не выпуская сразу данных о производительности. Ваша карта RAID имеет BBWC, и вы делаете кеширование записи? Если нет, то вы почти наверняка столкнетесь с проблемами - при использовании PerfMon посмотрите длину очереди диска на томе RAID. Практическое правило (IIRC) заключается в том, что число, превышающее число физических шпинделей в массиве, является неправильным.
Есть немного документированной досады с PAE в Windows. Несмотря на то, что ОС теперь способна распределять всю оперативную память в системе, некоторые приложения по-прежнему не будут ее использовать.
При включенном PAE каждый процесс по-прежнему ограничен 32-битной средой (4 ГБ)... если он специально не создан для использования AWE
Расширения оконного адреса.
Несмотря на всю эту "информацию" ... Я не думаю, что это проблема, с которой вы сталкиваетесь. (у вас есть процессы, превышающие 4 ГБ ОЗУ?) 9 ГБ подкачки для меня довольно много. Вдвойне, если учесть, что это терминальный сервер. Такое количество дискового ввода-вывода плохо влияет на производительность. Как сказал mfinni, более вероятно, что у вас возникли проблемы с дисковым вводом-выводом, чем проблемы с памятью. Я видел те же самые симптомы, которые вы описываете, только чтобы узнать, что мои дисководы действительно не справляются с нагрузкой. Существует список причин чрезмерного дискового ввода-вывода и столько же решений проблемы.
В моем случае я обнаружил, что служба диспетчера очереди печати выделяет ОГРОМНОЕ количество ОЗУ (которое в основном было выгружено в файл подкачки). Оказывается, в спулере печати существует давняя проблема, когда принтеры создаются / удаляются.
(Когда принтеры создаются, память выделяется для драйвера. Когда они удаляются, память не выделяется. Результатом на терминальном сервере, когда пользователи в течение всего дня входят и выходят из системы, является служба диспетчера очереди печати с 2 ГБ + выделенной оперативной памяти... и большая часть ее выбрасывается в файл подкачки) По возможности, не используйте RDP для совместного использования принтеров.
Есть много других скрытых проблем, когда дело доходит до терминальных служб и памяти.
Windows 2003 x86 определенно зависит от производительности ядра памяти. По умолчанию он имеет более низкий максимум выгружаемого пула и максимум невыгружаемого пула, чем Windows XP. Мы привыкли максимизировать эти два значения, но даже при этом достаточно просто исчерпать память ядра.
Более подробная информация здесь: /questions/447848/problemyi-s-nestabilnostyu-na-32-bitnyih-terminalnyih-serverah-windows-2003-r2/447854#447854
На терминальном сервере x86 реально потрачено 29 ГБ.
К вашему сведению, я бы не стал исключать сеть, даже если они находятся в одном сегменте локальной сети.