Чего ожидать от служб терминалов Windows в 64-разрядной среде (часть 1)

Опубликовано: 24 Апреля, 2023

Одним из самых неприятных аспектов администрирования среды терминального сервера является тот факт, что для максимального использования возможностей терминального сервера может потребоваться относительно небольшое количество пользовательских сеансов. В документации Microsoft указано, что на терминальный сервер действует ограничение в 300 пользовательских сеансов. Тем не менее, такие факторы, как количество запущенных приложений, количество ресурсов, потребляемых различными приложениями, уровень активности конечного пользователя и аппаратное обеспечение сервера, могут существенно повлиять на фактическое количество сеансов, которые сервер терминалов может поддерживать. ниже заявленного значения. Одной из технологий, которая обещает помочь ограничить влияние этих факторов, является постепенный переход к 64-разрядным вычислениям.


32-битная модель памяти


Одним из основных факторов, влияющих на ограниченное количество сеансов, которые может поддерживать сервер терминалов, является 32-разрядная модель памяти. Сервер Windows, работающий под управлением 32-разрядной операционной системы на 32-разрядном оборудовании, использует 32-разрядную модель памяти. Для этой модели памяти максимальный размер адресного пространства составляет 4 ГБ. Это 4-гигабайтное адресное пространство не полностью доступно для приложений. Windows разделяет рабочее пространство пополам и создает адресное пространство размером 2 ГБ для процессов режима ядра и адресное пространство размером 2 ГБ для приложений пользовательского режима.


В среде службы терминалов это означает, что адресное пространство размером 2 ГБ совместно используется всеми процессами, запущенными на сервере. Как только это адресное пространство в 2 ГБ будет исчерпано, запуск новых процессов будет невозможен. С точки зрения взаимодействия с конечным пользователем это означает, что если пользователь попытается войти в систему, его сеанс будет отклонен. Пользователи, которые вошли в систему до использования адресного пространства, могут оставаться на связи, но производительность их сеансов будет значительно снижена до тех пор, пока не будет освобождена часть памяти.


Преимущество 64-разрядного сервера под управлением 64-разрядной операционной системы Windows заключается в том, что 64-разрядные версии Windows Server не ограничены 32-разрядной моделью памяти. 64-разрядный сервер может поддерживать адресное пространство режима ядра до 8 ТБ. Таким образом, если ограничения адресного пространства являются фактором, ограничивающим количество сеансов, которые может поддерживать ваш сервер терминалов, есть большая вероятность, что вы сможете решить эту проблему путем обновления до 64-разрядного сервера с 64-разрядной операционной системой.


Записи таблицы страниц


Тот факт, что 64-разрядная операционная система значительно увеличивает максимальный размер адресного пространства сервера, — не единственная причина, по которой 64-разрядные серверы часто могут поддерживать больше пользователей, чем 32-разрядные серверы. Еще один фактор, косвенно связанный с ограничением адресного пространства, заключается в том, что 32-разрядные серверы поддерживают ограниченное количество записей в таблице страниц. Задача записи таблицы страниц состоит в том, чтобы удерживать выделение стека для каждого потока. Эти выделения стека используются, когда поток выполняет вызов режима ядра.


Записи таблицы страниц (PTE) — важный ресурс Windows. На самом деле нехватка PTE может привести к тому, что Windows станет настолько нестабильной, что операционная система выйдет из строя. Существует даже счетчик системного монитора (Memory Free System Page Table Entries), который вы можете использовать, чтобы увидеть, сколько PTE доступно в Windows. Общепринятое правило заключается в том, что если количество доступных PTE падает ниже 7000, стабильность системы становится сомнительной.


Причина, по которой PTE так важны, заключается в том, что Windows резервирует очень ограниченное количество места для PTE. 32-разрядная версия Windows Server 2003 по умолчанию выделяет только около 900 МБ пространства для PTE. Если вы используете переключатель /3GB в файле BOOT.INI, чтобы выделить больше адресного пространства для процессов пользовательского режима, они значительно уменьшат количество доступных PTE. Проще говоря, в 32-разрядной версии Windows Server 2003 пространство PTE является дефицитным и ценным товаром. Чем больше процессов выполняется на сервере, тем больше места PTE используется. Это особенно проблематично в средах терминальных серверов, поскольку сервер должен запускать свои собственные процессы и полный набор процессов для каждого сеанса пользователя.


Однако в 64-разрядной версии Windows пространство PTE не является такой большой проблемой. На самом деле Windows может выделить до 128 ГБ места для PTE.


Если у вас возникли проблемы со стабильностью системы на сервере терминалов, возможно, вам следует использовать монитор производительности, чтобы увидеть, сколько места PTE у вас действительно есть, когда сервер находится под средней нагрузкой. Если у вас мало места в PTE, вы можете воспользоваться обновлением до 64-разрядного сервера.


Аппаратное обеспечение является фактором


И последнее, о чем я хочу упомянуть, это то, что простая покупка 64-битного сервера с 64-битной версией Windows Server не гарантирует, что вы сможете разместить больше пользовательских сеансов, чем сейчас. Конечно, 64-битная модель памяти может поддерживать гораздо больше пользовательских сеансов (до 600 сеансов в некоторых тестах). Однако фактическое количество сеансов, которые может поддерживать ваш новый сервер, сильно зависит от вашего оборудования. Например, 64-разрядный сервер с установленным 4 ГБ ОЗУ теоретически может работать медленнее, чем сопоставимый 32-разрядный сервер, из-за повышенной зависимости от виртуальной памяти, вызванной большим адресным пространством.


Точно так же некоторые администраторы обнаружили, что если они обновляются до 64-разрядного сервера с большим объемом памяти (память является ключевым фактором), другие части сервера могут не успевать за ними. Например, часто жалуются на то, что дисковая подсистема сервера внезапно становится узким местом в производительности.


Вывод


В этой статье я объяснил, как 64-разрядные серверы, работающие под управлением 64-разрядных версий Windows Server 2003 (или, в конечном итоге, Longhorn Server), могут преодолеть многие ограничения, традиционно связанные со средами терминальных серверов. Конечно, покупка сервера с 64-битным процессором и 64-битной операционной системой не гарантирует, что сервер сможет поддерживать большое количество терминальных сессий. Фактическое количество сеансов, которые может поддерживать сервер, в конечном счете все еще зависит от конфигурации оборудования сервера (а не только его процессора), типов приложений, запускаемых на сервере, и уровня активности пользователей на сервере.