Проблема производительности PowerShell/Active Directory Web Services только на определенных контроллерах домена

Вопрос или проблема

На прошлой неделе моя команда заметила, что некоторые наши скрипты управления группами AD в PowerShell выдают ошибки. После небольшого расследования мы обнаружили, что команда ‘Get-ADGroupMember’ зависает при обращении к некоторым контроллерам домена. У нас всего девять DC: пять виртуальных машин и четыре физических. Проблема воспроизводится только на четырех физических серверах. Эти четыре работают на Server 2016; виртуальные машины на Server 2022.

При обращении к не затронутым DC команда возвращается за миллисекунды. На затронутых DC время ожидания превышает пятиминутный лимит. Тестовая группа не велика. В ней менее 300 участников.

Я включил режим отладки для ADWS (как описано здесь) и зафиксировал процесс на одном из медленных DC и на одном из «нормальных» DC. Мне ничего не бросилось в глаза, кроме того, что как только процесс начинает получать каждый объект участника, время извлечения каждого объекта замедляется. Время выполнения других команд, таких как Get-ADUser, не показывает значительных различий.

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

Мы только что вернулись после праздничного перерыва, поэтому использование было минимальным, и трудно точно определить, когда началась проблема. Мы также внесли значительное изменение в наши процессы управления идентификацией несколько недель назад, что примерно удвоило количество наших пользовательских объектов с около 30 тыс. до 70 тыс. Наши проверки состояния DC и репликации показывают зеленый свет после этого изменения.

За исключением того, что это может быть специфической проблемой с обновлениями за декабрь 2016 года, я не знаю, куда двигаться дальше. Физическим серверам 8 лет, но они были с существенным запасом по спецификациям. Хотя одно ядро используется во время вызова, общее использование системы низкое.

Ответ или решение

Проблемы с производительностью PowerShell/Active Directory Web Services (ADWS), возникающие только на определённых контроллерах домена, являются сложной задаче, требующей всестороннего анализа. Рассмотрим возможные причины и последовательность действий для их устранения, основываясь на предоставленной информации.

Теория (Theory)

Проблема может быть связана с несколькими факторами, такими как версия операционной системы, особенности аппаратной платформы или изменения в инфраструктуре и конфигурации служб. В вашем случае, проблема наблюдается на контроллерах домена (DC), работающих на Windows Server 2016 и имеющих физическую аппаратную основу. Поскольку виртуальные машины (ВМ) на Windows Server 2022 справляются с командой Get-ADGroupMember без задержек, под подозрение попадают особенности и ресурсные ограничения физической инфраструктуры, а также возможные баги в программном обеспечении Server 2016.

Пример (Example)

Общие источники подобных проблем обычно включают ресурсоёмкость операций, влияние обновлений системы, режим использования (например, однопоточность), изменения в конфигурации AD и сетевые задержки. В приведённом вами случае наблюдается значительное увеличение количества пользователей (с 30k до 70k), что может повлиять на производительность ADWS, особенно на менее производительной системе или при наличии ограничений в управлении кэшированием и параллельной обработкой запросов.

Применение (Application)

  1. Внимательное изучение журналов и событий ADWS. Несмотря на то что вы не заметили ничего необычного при сравнении логов, возможно, поможет дополнительный анализ, особенно в части, касающейся специфики обработки объектов на конкретной версии ОС и физическом оборудовании.

  2. Тестирование влияния конкретных обновлений и патчей. Проверьте, нет ли известных проблем с последними обновлениями для Windows Server 2016, которые могли бы повлиять на производительность ADWS. Это можно сделать с помощью официальных вендорных ресурсов и форумов на базе опыта сообщества.

  3. Анализ использования процессорных ресурсов. Вы отметили, что при выполнении команды наблюдается использование одного ядра. Это может указывать на проблему с многопоточностью или ограничением в конфигурации ADWS сервиса. Проверьте возможность изменения настроек, связанных с многопоточностью, или настройте распределение нагрузки по ядрам.

  4. Оптимизация конфигурации и структуры домена. Поскольку вы увеличили количество пользователей, обратите внимание на способы оптимизации обработки запросов, такие как настройка индексов и оптимизация кэширования в AD.

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

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

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

Оцените материал
Добавить комментарий

Капча загружается...