В Microsoft Exchange Server 2007 доступна новая возможность, которая позволяет администратором управлять производительностью системы для пользователей, — регулирование RPC-клиентов. Регулирование RPC-клиентов было введено с целью предотвращения отправки клиентскими приложениями слишком большого числа операций RPC в секунду на сервер Exchange, что может снижать общую производительность сервера. К таким клиентским приложениям относятся панели поиска, которые выполняют поиск во всех объектах почтового ящика пользователя, пользовательские приложения, предназначенные для работы с данными в почтовых ящиках Exchange, корпоративные продукты для архивации электронной почты или решения CRM для почтовых ящиков с автоматическим назначением меток. Регулирование клиентов позволяет Exchange выявлять и предотвращать случаи монопольного использования сервера несколькими пользователями. Если сервер Exchange определяет, что клиент имеет непропорционально большое воздействие на сервер, он отправляет клиенту запрос на переключение в пассивный режим, чтобы снизить его влияние на производительность.

Примечание.
В Microsoft Exchange Server 2003 был доступен раздел реестра «Disable MAPI Client Processes», описанный в статье A feature is available to disable MAPI program access to a computer that is running Exchange Server 2003 (на английском языке). Можно использовать этот раздел реестра для блокировки подключения определенных процессов к службе банка данных. Этот раздел реестра не реализован в Exchange Server 2007; он заменен новым механизмом регулирования RPC-клиентов.

Принцип работы регулирования RPC-клиентов

Если средняя задержка RPC на сервере Exchange Server 2007 выше обычной, пользователи сервера могут заметить замедление работы службы. Для обеспечения приемлемой работы пользователей средняя задержка RPC должна быть ниже 100 мс.

Механизм регулирования RPC-клиентов использует вычислительный метод, основанный на статистике общих средних задержек RPC и удаленных операций, для определения того, необходимо ли отправлять на определенный клиент запросы на переключение в пассивный режим, чтобы сократить число операций, которые клиент может выполнять на сервере. Этот метод вычисляет среднюю задержку между операциями ROP за три интервала выборки в определенную минуту. При этом используется скользящее среднее значение частоты операций ROP за последнюю минуту. После определения этого значения оно сравнивается с общей средней задержкой RPC. Если вычисленное значение ниже общей средней задержки RPC, на клиент будут отправляться запросы на переключение в пассивный режим.

Важно!
Непродолжительные пики числа операций ROP в секунду не приводят к запросам на переключение в пассивный режим, если средняя задержка RPC за последнюю минуту низкая.

Например, при задержке RPC, равной 25 мс, нормальный клиент может успешно отправить до 40 операций ROP в секунду (40 * 25 = 1000 мс) без регулирования. Если задержка RPC увеличится до 100 мс, а клиент будет пытаться отправить то же количество операций ROP в секунду, он начнет получать от сервера запросы на переключение в пассивный режим. С этого момента сервер будет позволять клиенту отправлять не более 10 операций ROP в секунду до тех пор, пока средняя задержка RPC при очередной выборке не будет ниже 100 мс.

Логика отправки запросов на переключение в пассивный режим включает два основных элемента: определение сервером необходимости регулирования клиента и выявление необходимости блокировать доступ клиента к серверу. В службе банка данных существует журнала активности клиентов, в котором отслеживаются действия каждого пользователя на определенном сервере. Каждый журнал активности клиентов сопоставлен с пользовательским сеансом MAPI. Если сервер принимает решение о регулировании клиента, запрос на переключение в пассивный режим добавляется в очередь переключения в пассивный режим сеанса MAPI этого пользователя. Затем эти сведения о переключении в пассивный режим используются для определения того, принимается или отклоняется запрос сервером. Если в одном сеансе MAPI пользователя открыто несколько почтовых ящиков, сведения о переключении в пассивный режим будут применяться ко всем из них.

Сведения о переключении в пассивный режим, которые отправляются сервером в ответный поток RPC для клиента, зависят от используемой версии Microsoft Office Outlook.

  • Для клиентов Microsoft Office Outlook 2007 в очередь переключения в пассивный режим пользователя добавляется запрос ropBackoff. Этот запрос содержит сведения о текущей задержке для переключения в пассивный режим и требует от клиента задержки отправки дополнительных запросов на сервер в течение указанного времени. По завершении указанного времени клиент повторно попытается отправить запросы. Максимальное время задержки для переключения в пассивный режим задано жестко и равно 2000 мс (2 с).

    Примечание.
    Для оптимальной работы клиентов c Exchange Server 2007 рекомендуется использовать клиенты Outlook 2007.
    Примечание.
    ropBackoff — это новая возможность Outlook 2007, и более ранние клиенты Outlook не поддерживают эту функцию.
  • В Microsoft Office Outlook 2003 и более ранних версий отправляется код состояния RPC_S_SERVER_TOO_BUSY. Этот код состояния повторяет отклик серверов Exchange Server 2003, который отправляется на клиенты при исчерпании потоков RPC банка данных. Более ранние версии настроены на перехват этого исключения и ожидание в течение определенного времени, заданного в отклике сервера клиенту, перед повторной попыткой вызова. По умолчанию задержка равна 1 с. Если клиент будет повторять запрос каждую секунду в течение минуты и каждый раз получать то же исключение, сеанс его связи с сервером Exchange будет отключен.

Отслеживание большого числа операций RPC в секунду

Чтобы определить, когда клиенты переключаются в пассивный режим, можно наблюдать за счетчиком производительности «MSExchangeIS\Переключений/с клиента RPC» на сервере Exchange с установленной ролью сервера почтовых ящиков, чтобы определить частоту запросов на переключение в пассивный режим.

Счетчик Ожидаемые значения для Outlook 2007 Ожидаемые значения для Outlook 2003 и предыдущих версий

MSExchangeIS\Переключений/с клиента RPC

Частота, с которой сервер уведомляет клиента о необходимости переключения в пассивный режим.

50 на клиент

1 на клиент

При регулировании клиентов Outlook 2007 ожидаемое значение счетчика «MSExchangeIS\Переключений/с клиента RPC» — около 50 переключений в пассивный режим в секунду на каждый клиент. В Outlook 2003 и предыдущих версиях значение не должно превышать 1. Разница ожидаемых показателей объясняется степенью детализации метода переключения в пассивный режим, который применяется на соответствующих клиентах. Наименьший период переключения в пассивный режим для Outlook 2003 — 1 с, тогда как для Outlook 2007 — 1 мс.

Сведения о переключении в пассивный режим, отправляемые на клиент, содержат две части. Первая часть представляет собой время вызова переключения в пассивный режим. Вторая часть — продолжительность периода переключения в пассивный режим. Эта продолжительность вычисляется по следующей формуле: (MSExchangeIS\Средняя задержка RPC * коэффициент регулирования RPC)/1000. По умолчанию коэффициент регулирования RPC равен 1000. Это означает, что период переключения в пассивный режим совпадает со значением средней задержки RPC. Значение переключения в пассивный режим, которое сервер отправляет на клиент, — это число миллисекунд до истечения периода переключения в пассивный режим. Если клиент отправит на сервере другую операцию до истечения указанного периода, сервер вернет еще один отклик ropBackoff с новым значением задержки. Это будет продолжаться до истечения периода переключения в пассивный режим, после чего отклик ropBackoff будет удален из очереди переключения в пассивный режим пользователя. При этом в системном мониторе будут отображаться примерно такие данные:

Переключения клиента RPC системного монитора

Настройка обработки большого числа операций RPC в секунду

На серверах Exchange с установленной ролью сервера почтовых ящиков доступен раздел реестра, предназначенный для настройки вычисления регулирования. Этот раздел называется RPC Throttling Factor и находится в разделе HKLM\System\CurrentControlSet\Services\MSExchangeIS\ParametersSystem.

Примечание.
Значение по умолчанию не задано, и его необходимо добавить в качестве значения DWORD в указанный выше раздел.

[HKLM\System\CurrentControlSet\Services\MSExchangeIS\ParametersSystem]

RPC Throttling Factor

DWORD: может иметь значение от 0 до 5000

Чтобы продемонстрировать влияние изменения коэффициента регулирования RPC, рассмотрим сценарий, в котором требуется настроить на сервере более длительное переключение клиентов в пассивный режим, например равное значению «2 x средняя задержка RPC». Для этого необходимо установить для параметра RPC Throttling Factor значение 2000. При этом период перехода в пассивный режим для каждого сеанса MAPI будет увеличен вдвое. В таком случае, если средняя задержка RPC равна 50 мс, коэффициент регулирования 2000 (50 мс * 2000/1000) будет соответствовать 100 мс. Каждый запрос на переключение в пассивный режим будет продолжаться 100 мс, а не 50 мс, как по умолчанию, что приведет к задержке дополнительных запросов MAPI к серверу на 100 мс. Необходимо учитывать, что такое изменение конфигурации может восприниматься на клиенте как снижение производительности сервера. Тем не менее использование ресурсов на сервере Exchange клиентами, которые негативно влияют на общую производительность сервера, будет сведено к минимуму. Это улучшит производительность сервера для всех других его пользователей.

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

Для оптимальной работы этого механизма регулирования рекомендуется использовать Outlook 2007 и Exchange Server 2007 или последующие версии.

Можно полностью отключить регулирование, установив для коэффициента регулирования значение 0.

Важно!
Не рекомендуется отключать регулирование клиентов для банка данных. Это позволит клиентам с чрезмерным количеством запросов снизить производительность сервера.

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

Дополнительные сведения

Дополнительные сведения об устранении неполадок, связанных с обработкой медленных запросов RPC, см. в разделе Устранение неполадок с обработкой медленных запросов RPC.

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