вторник, 11 января 2011 г.

Политики регулирования клиентов (Client Throttling Policies)

clip_image002В двух прошлых статьях мы разобрали вопрос мониторинга нагрузки, оказываемой на сервер, и механизм регулирования количества сообщений, проходящих через транспортные сервера организации. Теперь я предлагаю поговорить о политиках регулирования клиентов.

Политики регулирования клиентов (Client Throttling Policies) – это механизм, позволяющий отслеживать количество потребляемых ресурсов сервера каждым пользователем и в случае необходимости устанавливать предельные значения.

Политики регулирования клиентов появились в сервере Exchange начиная с 2007-й версии. На сервере MS Exchange 2007 была возможность контролировать нагрузку только RPC-клиентов и при оказании непропорционально большого воздействия одним из них, чтобы снизить его влияние на производительность, отправлять клиенту запрос на переключение в пассивный режим.

Что касается MS Exchange 2010, то здесь был добавлен ещё ряд механизмов, о которых мы и поговорим далее.

Параметры политик регулирования клиентов

Начнем с того, что на сервере после установки уже существует политика регулирования клиентов по умолчанию (DefaultThrottlingPolicies_GUID), и в стандартных ситуациях её будет вполне достаточно. Но если она не удовлетворяет требованиям вашей организации, то вы можете её отредактировать или создать ещё несколько новых.

Для того, чтобы получить настройки политики регулирования клиентов, необходимо воспользоваться командлетом Get-ThrottlingPolicy.

В результате выполнения командлета мы увидим достаточно большой набор свойств.

clip_image004[6]

Рис.1: Политика регулирования клиентов по умолчанию.

Если у вас несколько политик, то политику по умолчанию можно получить командой

Get-ThrottlingPolicy | Where {$_.IsDefault –eq $True}

В поле Name отображается имя политики, которое придется использовать в дальнейшем. При этом очевидно, что пользоваться политикой с таким длинным именем крайне не удобно, по этому проще всего её переименовать, например, в DefPolicy так:

Get-ThrottlingPolicy | Where {$_.IsDefault –eq $True} | Set-ThrottlingPolicy –Name DefPolicy

Если присмотреться, то не трудно понять, что при помощи политики регулирования клиентов можно управлять такими службами как:

  •  Microsoft Exchange ActiveSync  (EAS);
  •  Веб-службы Exchange (EWS);
  •  IMAP (IMAP4);
  •  Outlook Web App (OWA);
  •  POP (POP3);
  •  Windows PowerShell (PowerShell).

Чтобы отфильтровать вывод по конкретной службе, можно выполнить следующую команду:

Get-ThrottlingPolicy | Select EWS*

При этом для каждой из служб можно указать несколько видов пороговых значений, основные из них:

  • MaxConcurrency – Максимальное количество одновременных подключений. Попытка создать более количество подключений будет отклонена;
  •  PercentTimeInCAS – время в процентах относительно одной минуты, в течении которого можно выполнять код на сервере клиентского доступа;
  •  PercentTimeInAD – время в процентах относительно одной минуты, в течении которого можно выполнять запросы к Active Directory;
  •  PercentTimeInMailboxRPC – время в процентах относительно одной минуты, в течении которого можно выполнять RPC запросы;
  •  PowerShellMaxConcurrency – указывает максимальное число сеансов удаленной командной консоли;
  •  PowerShellMaxCmdlets – указывает число нерегулируемых командлетов, которое можно выполнить за определенный период времени;
  •  PowerShellMaxCmdletsTimePeriod – указывает период времени (в секундах), в течение которого пользователь может выполнить число командлетов, определенное параметром PowerShellMaxCmdlets;
  •  PowerShellMaxCmdletQueueDepth – указывает число операций, которое пользователь может одновременно выполнить.

Примечание: Важное отличие политик регулирования клиентов на сервере Exchange 2010 RTM и Exchange 2010 SP1 заключается в том, что если в первом случае клиент превышает одно из пороговых значений, то все остальные его запросы сервер игнорирует. Во втором случае игнорирования запросов не происходит, они остаются в очереди и продолжают обрабатываться постепенно.

Также стоит обратить внимание ещё на одно свойств политики – это IsDefault (рис.1). Именно оно делает простую политику политикой по умолчанию.

Управление политиками регулирования

Администраторы сервера Exchange могут создать несколько политик регулирования клиентов и назначить каждому пользователю свою.

Нужно заметить, что по умолчанию пользователю не назначено ни каких политик, это можно легко проверить, посмотрев на свойство –ThrottlingPolicy:

Get-Mailbox –Identity <User> | FL ThrottlingPolicy

Раз так, то очевидно, что на него распространяется политика по умолчанию. Чтобы назначить конкретную политику регулирования пользователю, необходимо сначала её создать, например, так:

New-ThrottlingPolicy –Name <MyPolicy> –OWAMaxConcurrency 10

А потом присвоить пользователю:

Set-Mailbox –Identity <YourUser> –ThrottlingPolicy <MyPolicy>

При этом отредактировать политику можно при помощи командлета Set-ThrottlingPolicy, например следующим образом:

Set-ThrottlingPolicy –Identity <MyPolicy> -PercentTimeInAD 20

Либо сделать политику используемой по умолчанию:

Set-ThrottlingPolicy –Identity <MyPolicy> -IsDefault $True

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

Заключение

В крупных организациях нагрузки на сервера достаточно высоки, по этому вопрос регулирования нагрузки здесь особенно актуален. Правильно настроенные ограничения доступа к серверам позволят равномерно распределить нагрузку и избежать случаев отказа в обслуживании.

1 комментарий:

Анонимный комментирует...

Большое спасибо Александру за статью!

Отправить комментарий