Поделиться через


Устранение проблем MCA, часть 2. Вычисление и изменение MCA на затронутых компьютерах

В этой статье описывается, как вычислять и реализовывать новые значения для MaxConcurrentApi параметра.

Область применения: Windows Server 2012 и более поздних версий, Windows 8 и более поздних версий

Итоги

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

  1. Соберите общую статистику производительности, чтобы установить базовые показатели для затронутого сервера.
  2. Соберите статистику производительности, связанную с настройкой, пока сервер обрабатывает максимальные клиентские запросы. Например, в сценарии сервера электронной почты лучшее время для сбора данных о производительности заключается в том, когда пользователи приходят на работу и проверяют свои сообщения электронной почты.
  3. Используйте данные производительности для вычисления MaxConcurrentApi значения, настроенного для этого сервера.
  4. Если вычисляемое значение не равно значению по умолчанию и меньше максимального значения, задайте вычисляемое значение в реестре.
  5. Соберите свежие статистические данные о производительности, чтобы убедиться, что изменения изменились. Проверьте производительность базовых показателей.

Внимание

  • Перед изменением MaxConcurrentApi на рабочем сервере измените его в тестовой среде. Убедитесь, что изменение не вызывает других проблем с производительностью. Такое изменение может занять ресурсы памяти и диска на серверах, использующих старое оборудование.
  • Помните, что условия загрузки могут изменяться в зависимости от каждого сценария и бизнес-среды. Таким образом, если нагрузка службы изменяется, может потребоваться пересчитать MaxConcurrentApi значение.

Настройка базовых показателей производительности

Перед внесением изменений отслеживайте серверы, которые подозревают, что проблемы MCA достаточно долго, чтобы установить базовые показатели производительности (особенно во время пиковых периодов нагрузки). Продолжайте мониторинг после внесения изменений MaxConcurrentApi . Базовые показатели производительности предоставляют данные, необходимые для определения последствий новых MaxConcurrentApi значений. Те же данные также могут помочь определить первопричину проблем с производительностью вашей среды (см . часть 3 этой серии).

Как минимум, следует отслеживать следующие счетчики, чтобы установить базовые показатели производительности и проверить эффективность любых MaxConcurrentApi изменений.

Набор счетчиков производительности Характер использования
Память Отслеживайте общую системную память, чтобы убедиться, что система не перегружена.
Физический диск или логический диск Отслеживайте операции ввода-вывода диска, чтобы убедиться, что диски не перенаценированы. Это важно, если включено ведение журнала Netlogon (которое должно быть, если вы отслеживаете эту проблему).
Процесс (lsass.exe, как минимум) Для этого базового плана lsass.exe является наиболее интересным, потому что это место, где работает Netlogon. Однако это никогда не больно иметь представление о процессах в случае возникновения проблемы после изменения MaxConcurrentApi.
Процессор Отслеживайте нагрузку процессора.
Сетевой интерфейс Необязательный, но рекомендуется включать.
Netlogon Отслеживайте счетчики производительности Netlogon, чтобы получить целостное представление о функциях Netlogon. Счетчики можно использовать для обнаружения задержек проверки подлинности, а также времени ожидания.

Мониторинг этих счетчиков обеспечивает быстрый способ (за пределами журналов Netlogon) для определения времени ожидания проверки подлинности.

Журналы Netlogon по-прежнему необходимо использовать для правильного анализа тенденций и анализа (например, чтобы определить, сколько пользователей затронуты, сколько они пострадали, точные коды ошибок и источник "плохой" проверки подлинности).

В этом разделе описывается использование Монитор производительности (Perfmon.msc, также доступное в меню "Сервис" в диспетчер сервера) для сбора данных, которые необходимо вычислитьMaxConcurrentApi.

Настройте Монитор производительности следующим образом:

  • Длительность. Задайте значение duration в свойствах Монитор производительности. Рекомендуется использовать значение в диапазоне от 90 до 120 секунд.

    Снимок экрана: расположение свойства Duration в Монитор производительности.

  • Счетчики. Добавьте следующие счетчики из объекта Netlogon .

    Счетчик Экземпляр
    Семафор получает _Всего
    Время ожидания Семафора _Всего
    Среднее время удержания Семафора _Всего

    Примечание.

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

Соберите следующие значения из Монитор производительности:

  • <Duration> = Constant, определяющий интервал сбора данных.
  • <> Semaphore_Acquires = Изменение значения счетчика Netlogon Semaphore Получает в течение указанной длительности. Счетчик является накопительным. Минимальное значение — начальное значение, а максимальное — конечное значение.
  • <> Semaphore_Timeouts = изменение значения счетчика времени ожидания netlogon Semaphore в течение указанной длительности. Счетчик является накопительным. Минимальное значение — начальное значение, а максимальное — конечное значение.
  • <> Avg_Semaphore_Hold_Time = значение счетчика времени удержания семафора netlogon. Чтобы просмотреть значение, вычисляемое в течение указанной длительности, задайте для представления Монитор производительности значение Report вместо Line.

Примечание.

Если значение любого из этих счетчиков равно нулю, сервер не нуждается в новом MaxConcurrentApi значении.

Вычисление нового значения MaxConcurrentApi

Используйте следующее уравнение, чтобы определить значение MCA для сервера:

(<Semaphore_Acquires +>< Semaphore_Timeouts>) ×< Avg_Semaphore_Hold_Time> /< Длительность> =< MaxConcurrentApiI>

Сравните вычисляемое значение со значением по умолчанию и максимальным значением роли сервера, как указано в следующей таблице.

Тип операционной системы или роль Потоки по умолчанию (на безопасный канал) Максимальное число потоков
Контроллеры домена
Windows Server 2012 и более поздних версий
10 150
Серверы-члены
Windows 2012 и более поздних версий
10 150
и рабочие станции
Windows 8 и более поздние версии
1 150
Примечание. Вряд ли потребуется значение, превышающее 1 на рабочей станции.

Примечание.

  • Более ранние версии Windows, которые достигли даты окончания поддержки, имеют разные значения по умолчанию и максимальные значения maxConcurrentApi. Если у вас возникла проблема С MCA, которая включает неподдерживаемую версию Windows, обновите ее до более последней версии Windows вместо того, чтобы изменить значение MaxConcurrentApi.
  • Значения в этой таблице отражают условия, в которых между системой проверки подлинности (которая отправляет запрос проверки подлинности, например сервер приложения) и контроллер домена в целевом домене не существует.

Если вычисляемое значение MaxConcurrentApi больше значения по умолчанию и меньше 150, измените значение сервера MaxConcurrentApi , как описано в следующем разделе.

Внимание

Если вычисляемое значение равно или больше 150, изменение MaxConcurrentApi не решит проблему. Проверьте среду для базовых проблем и рассмотрите возможность добавления серверов для поддержки загрузки запроса проверки подлинности (см . часть 3 этой серии).

Изменение MaxConcurrentApi

Необходимо настроить MaxConcurrentApi в реестре сервера. Нет сопоставимых параметров групповой политики.

Важно!

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

Чтобы изменить параметр MaxConcurrentApi, выполните следующие действия.

  1. Нажмите кнопку "Пуск", введите regedit и выберите редактор реестра в результатах поиска.

  2. Выберите следующий подраздел реестра: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Netlogon\Parameters

  3. Выберите "Изменить>новое>значение DWORD" и введите MaxConcurrentApi.

  4. Выберите "Изменить>изменение", а затем введите десятичное значение нового MaxConcurrentApi параметра.

  5. Откройте окно командной строки и выполните следующие команды в последовательности:

    net stop netlogon
    net start netlogon
    

Проверка нового параметра MaxConcurrentApi

Как описано в разделе "Настройка базового плана производительности", продолжайте мониторинг производительности сервера после изменения значения сервера MaxConcurrentApi . Сосредоточьтесь на следующих счетчиках производительности:

  • Память
  • Физический диск или логический диск
  • Обработать
  • Процессор
  • Сетевой интерфейс
  • Netlogon

В идеале производительность должна улучшиться после изменения MaxConcurrentApi.

Пример. Вычисление настроенного значения MaxConcurrentApi

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

Для сбора сведений, необходимых для вычислений, Монитор производительности настраивается следующим образом:

  • Свойство Duration составляет 90 секунд.
  • Видны следующие три счетчика:
    • Семафор получает (_Total)
    • Время ожидания Семафора (_Total)
    • Среднее время удержания Семафора (_Total)

Первое значение, добавляемое в уравнение, — известное значение /<Duration>.

(<Semaphore_Acquires + <Semaphore_Timeouts>>) ×< Avg_Semaphore_Hold_Time> / 90 =< MaxConcurrentApi>

Определение значения среднего времени удержания Семафора

Лучший способ найти среднее время удержания Семафора — переключиться в представление отчета в Монитор производительности. Для этого выберите "Изменить тип>графа" на панели инструментов Монитор производительности. Представление отчета напоминает следующее:

Снимок экрана: представление отчета в Монитор производительности.

Теперь добавьте среднее время удержания Семафора в уравнение.

(<Semaphore_Acquires + <Semaphore_Timeouts>) × > 0.098 / 90 =< MaxConcurrentApi>

Это значение является единственным значением, которое необходимо получить из представления отчета . Для оставшихся значений необходимо вернуться к представлению "Строка" (на панели инструментов выберите "Изменить тип>графа").

Определение значения времени ожидания Семафора

В примере, приведенном в части 1 , использовались тайм-ауты Семафора, чтобы определить, имеет ли сервер проблему MCA. На этом шаге необходимо пересчитывать это значение с помощью 90-секундной длительности.

Снимок экрана: данные времени ожидания за 90 секунд в Монитор производительности.

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

(<Semaphore_Acquires + 1983) × >0,098 / 90 = <MaxConcurrentApi>

Определение значения получения Семафора

Как и значение времени ожидания Семафора, семафор получает данные совокупно в течение периода длительности, который отображается в Монитор производительности.

Снимок экрана: Семафор получает данные в Монитор производительности.

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

(1833 + 1983) × 0,098 / 90 = <MaxConcurrentApi>

Вычисление MaxConcurrentApi

Уравнение создает значение 4,1552 для MaxConcurrentApi. Для записи реестра требуется целочисленное значение, но 4 может быть недостаточно. В этом случае 5 является безопасным значением для использования.

Следующие шаги