Отключаем WSRM на TS сервера Server 2012 R2 Std
Моя задача заключается в следующем, у меня есть более 5 Terminal Server
и некоторые под управлением Windows Server 2012 R2 Std
и вот они почему-то порой нагружаются под 100%
по части CPU.
Сперва я видел проблему в
- Пользователь не разлогинивается при работе на
TS
, а просто закрывает крестиком окно подключения. Применил настройку:gpedit.msc – Конфигурация пользователя (User Configuration) – Административные шаблоны (Administrative Templates) – Компоненты Windows (Windows Components) – Службы удаленных рабочих столов (Remote Desktop Services) – Узел сеансов удаленных рабочих столов (Remote Desktop Session Host) – Ограничение сеансов по времени (Session Time Limits):
Задать ограничение по времени для отключенных сеансов (Set time limit for disconnected sessions): Включена (15 минут)
Задать ограничение времени для активных, но бездействующих сеансов служб удаленных рабочих столов (Set time limit for active but idle Remote Desktop Services sessions): Включена (5 минут)
2. Система не корректно работает с памятью
3. Не настроена максимальная производительность систем.
После я уже ничего не понимал, начал все что только можно анализировать:
Что пользователи такого запускают
В какие часы это происходит
Грешил на работу перемещаемых профилей у всех (так принято в компании)
Из наблюдений выявил, что определенные пользователи (не вдавался в подробности какие отделы) запускают 1С
и делают свои дела и после этого процесс 1с
у одних пользователей отжимает все ресурсы CPU
, а страдают все. Симптомы, после которых TS
не работает:
· При входе по RDP (или через консоль) видит надпись «Подождите»
· При входе по RDP черный экран
· При входе по RDP видит надпись Applying user settings…
· При входе по RDP висит надпись Applying Group Policy Printers policy
· При входе по RDP висит надпись Applying Registry policy
· Через vSphere Client нагрузка на CPU 100% (ограничение на процессор не выставлено)
Может, конечно, это не из-за этого, но это все наблюдения, которые документирую Я.
Поиск средств контроля за ресурсами роли Терминального сервера системы вывел меня на компоненту: WSRM (Windows System Resource Manager)
. Вот о ней я хочу составить заметку. Проверил у себя, да! Компоненты нет, а ключи реестра есть.
В наличии:
Терминальный сервер под управлением Windows Server 2012 R2 Std (Version 6.3.9600)
Насколько я понял про работу архитектуры Remote Desktop Services
– это некорректное влияние сессии одного пользователя, взявшего на себя ресурсы системы в своем сеансе по отношению к сессиям других пользователей. Компания Microsoft
в системе Windows Server 2008 R2
предложила использовать DFSS (Dynamic Fair Share Scheduling)
в задачу данного инструмента полагалось балансировка и распределение ресурсов CPU
между пользователями. А вот уже в системе Windows Server 2012 R2
добавились возможности:
Network Fair Share ->
Динамическое распределение полосы пропускания сетевого канала между сессиями в зависимости от количества активных сессий.Disk Fair Share ->
Предотвращение чрезмерного использования дисков одним пользователем, равномерное распределение дисковых операций I/O между сессиями.CPU Fair Share ->
Динамическое распределение процессорного времени между сессиями в зависимости от количества активных сессий и общего уровня загрузки.
Но вот управлять этим из какой-либо оснастки уже нельзя, функция работает самостоятельно – только раз нет ручного управления доверять, а я всецело доверял и столкнулся на текущем месте с пугающей обстановкой работы. Что планировалось на благо теперь вносит хаос. Всегда должен быть инструмент ручного управления.
Ниже, где данные возможности активированы в реестре:
После поднятия роли TS
появляется параметры
Win + X – Command Prompt (Admin)
(CPU Fair Share)
“HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Quota System”
Name: EnableCpuQuota
Type: REG_DWORD
Data: 0x000000001
1 – это включено, 0 – это выключено
(Disk Fair Share)
(Disk Fair Share)
“HKLM\SYSTEM\CurrentControlSet\Services\TSFairShare\Disk”
Name: EnableFairShare
Type: REG_DWORD
Data: 0x000000001
1 – это включено, 0 – это выключено
(Network Fair Share)
“HKLM\SYSTEM\CurrentControlSet\Services\TSFairShare\NetFS”
Name: EnableFairShare
Type: REG_DWORD
Data: 0x000000001
1 – это включено, 0 – это выключено
Во многих руководствах, заметках люди рекомендую отключать данную нерегулируемую надстройку если на Terminal Server
используется 1С:Преприятие.
Проверяем через PowerShell
что служба DFSS
включена:
Win + X – Command Prompt (Admin)
123 | C:\Windows\system32>powershell PS C:\Windows\system32> (gwmi win32_terminalservicesetting -N “root\cimv2\terminalservices”).enabledfss |
Значение 1
– это включено, значение 0
– это выключено. У меня, как и ожидалось включена служба DFSS.
На заметку: Проблемы неадекватности работы TS
выявили, все дело в самописной оснастке 1С
используемой на работе. Любое действие нагружает CPU
-сервера, когда выставил значении параметра в реестре EnableCpuQuota
в ноль. Терминальный сервер под управлением Windows Server 2008 R2 Std
стал еще больше захлебываться и после доступ к нему уже ни как, только перезагрузка через vSphere.
Пришлось возвращать ключ в дефолтное значение и мириться с проблемами. Руководство не хочет выполнить стандартизацию TS
, все на Server 2012 R2
и сделать единые настройки для каждого.
Отключаю через реестр изменяя дефолтное значение с 1
на 0
для трех ключей выше, затем для активации изменений перезагружаю сервер и наблюдаю за ним, как он работает. На этом пока все, с уважением автор блога Олло Александр aka ekzorchik.