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


Использование Event1644Reader.ps1 для анализа производительности запросов LDAP в Windows Server

В этой статье описывается сценарий, который помогает анализировать идентификатор события Active Directory 1644 в Windows Server. Просмотрите шаги, чтобы использовать скрипт , а затем проанализировать проблемы.

Исходный номер базы знаний: 3060643

О скрипте Event164Reader.ps1

Идентификатор события Active Directory 1644 регистрируется в журнале событий службы каталогов. Это событие определяет дорогостоящие, неэффективные или медленные поиски по протоколу LDAP, обслуживаемые контроллерами домена Active Directory. Идентификатор общего события NTDS 1644 можно отфильтровать для записи поиска LDAP в журнале событий служб каталогов на основе количества объектов в базе данных Active Directory, количества возвращенных объектов или времени выполнения поиска LDAP на контроллере домена. Дополнительные сведения о идентификаторе события 1644 см. в разделе "Исправление" 2800945 добавления данных о производительности в журнал событий Active Directory.

Event164Reader.ps1 — это скрипт Windows PowerShell, который извлекает данные из 1644 событий, размещенных в сохраненных журналах событий службы каталогов. Затем он импортирует эти данные в ряд таблиц сводных таблиц в электронной таблице Microsoft Excel, чтобы помочь администраторам получить аналитические сведения о рабочих нагрузках LDAP, обслуживаемых контроллерами домена и клиентами, которые создают эти запросы.

Получение скрипта

Вы можете получить сценарий из записи блога о основной инфраструктуре и безопасности, как найти дорогостоящие, неэффективные и длительные запросы LDAP в Active Directory.

Примечание.

Скрипт прикреплен к записи блога с именем файла Event1644Reader.zip

Отказ центра сценариев
Примеры скриптов не поддерживаются в рамках любой стандартной программы поддержки майкрософт или службы. Примеры скриптов предоставляются КАК IS без каких-либо гарантий. Кроме того, корпорация Microsoft отказывается от всех подразумеваемых гарантий, включая в том числе все подразумеваемые гарантии пригодности для продажи или определенной цели. Весь риск, возникающий из использования или производительности примеров скриптов и документации, остается с вами. Корпорация Майкрософт, ее штатные авторы и другие лица, принимающие участие в создании, подготовке и выпуске сценариев, ни при каких обстоятельствах не несут ответственность за какой-либо ущерб (в том числе, ущерб, вызванный потерей доходов предприятия, остановкой его работы, потерей бизнес-данных и другими материальными потерями), вызванный использованием или неспособностью использовать примеры сценариев и документацию, даже если корпорации Майкрософт известно о возможности нанесения такого ущерба.

Поддержка однорангового узла в Сети
Для поддержки онлайн-пиринга присоединяйтесь к официальному форуму парней сценариев! Чтобы предоставить отзыв или сообщить об ошибках в примерах сценариев, запустите новое обсуждение на вкладке "Обсуждения " для этого скрипта.

Использование скрипта

Чтобы лучше проанализировать запросы LDAP, которые записываются в идентификаторе события 1644, выполните следующие действия.

  1. Убедитесь, что контроллеры домена, которые вы устраняете неполадки с расширенными метаданными события ** 1644.

    Примечание.

    Windows Server 2012 R2 добавил расширенное ведение журнала событий 1644 путем записи длительности запросов LDAP и других метаданных. Расширенное ведение журнала событий 1644 было возвращено в Windows Server 2012, Windows Server 2008 R2 и Windows Server 2008 с помощью исправлений 2800945.

  2. Задайте для следующей записи реестра "Инженерия полей" значение 5: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NTDS\Diagnostics\Field Engineering

    Примечание.

    Задание детализации журнала разработки полей значение 5 приведет к тому, что другие события будут регистрироваться в журнале событий службы каталогов. Сброс конструктора полей обратно в значение по умолчанию 0, если вы не активно собираете 1644 события. (Для этого действия не требуется перезапуск.)

  3. Если существуют следующие записи реестра, измените значения на требуемое пороговое значение в миллисекундах. Если определенная запись реестра не существует, создайте новую запись с таким именем и задайте для нее требуемое пороговое значение в миллисекундах.

    Путь к разделу реестра Тип данных Default value
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NTDS\Parameters\Search Time Threshold (msecs) DWORD 30,000
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NTDS\Parameters\Дорогое пороговое значение результатов поиска DWORD 10,000
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NTDS\Parameters\Неэффективный порог результатов поиска DWORD 1,000

    Примечание.

    • Если включен уровень ведения журнала "Инженерия полей", а запись реестра "Порог времени поиска" (msecs) не используется или имеет значение 0, значение по умолчанию порогового значения времени составляет 30 000 миллисекунд. (Для этого действия не требуется перезапуск.)
    • Одна из стратегий — задать значение реестра как для параметров реестра неэффективных результатов поиска, так и для параметров реестра дорогостоящих результатов поиска, а затем сосредоточиться на событиях, определяемых временем поиска (msec). Начните с большего значения, например 100 миллисекунд, а затем постепенно уменьшите значение по мере оптимизации запросов, происходящих в вашей среде.
    • Event164Reader.ps1 может анализировать события с нескольких контроллеров домена. Настройте параметры раздела реестра для разработки полей, времени поиска, затраты и неэффективности параметров раздела реестра на всех контроллерах домена, на которых требуется просмотреть поисковые запросы LDAP.
  4. Скачайте файл Event164Reader.ps1 из файла You can get the script from the Core Infrastructure and Security Blog post how to find дорогие, неэффективные и длительные запросы LDAP в Active Directory на компьютер, который будет анализировать сохраненные файлы EVTX службы Active Directory , содержащие 1644 события.

    На этом компьютере должна быть установлена microsoft Excel 2010 или более поздняя версия, и должно быть достаточно места на диске для размещения журналов событий службы каталогов, которые скрипт будет анализировать.

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

  6. В проводнике Windows щелкните правой кнопкой мыши файл Event164Reader.ps1 и выберите команду "Выполнить с помощью PowerShell".

    Ниже приведен снимок экрана для этого шага:

    Щелкните правой кнопкой мыши файл Event164Reader.ps1 и выберите команду

  7. Нажмите клавишу Y, чтобы обойти политику выполнения PowerShell по мере необходимости.

  8. Укажите путь к файлам EVTX для синтаксического анализа.

  9. При отображении запроса на следующем снимку экрана выполните следующие действия:

    Команда PowerShell для запуска файла Event164Reader.ps1.

    • Нажмите клавишу ВВОД, чтобы проанализировать все файлы EVTX, расположенные в том же каталоге, что и файл Enent164Reader.ps1.
    • drive:\path Введите путь, содержащий файлы EVTX для синтаксического анализа.

    Примечание.

    Event164Reader.ps1 анализирует 1644 события во всех журналах событий службы каталогов, расположенных в целевом пути при каждом запуске скрипта.

  10. Откройте лист, чтобы просмотреть данные и просмотреть ряд вкладок, а затем сохраните электронную таблицу Excel по мере необходимости. Дополнительные сведения о вкладках на листе см . в пошаговом руководстве по электронной таблице Excel, созданной в разделе 1644Reder.ps1 .

    Примечание.

    *.csv файлы, созданные средством, не удаляются автоматически. Попробуйте очистить файлы *.csv после завершения исследования.

Дополнительная информация

Пошаговое руководство по электронной таблице Excel, созданной event164Reader.ps1

Event164Reader.ps1 извлекает метаданные из 1644 событий в сохраненных журналах событий службы каталогов и импортирует эти данные в ряд табуляции листов в электронной таблице Microsoft Excel.

В следующей таблице перечислены данные, содержащиеся на каждой вкладке:

Вкладка Описание
RawData Каждое поле данных, захваченное идентификатором события 1644, импортируется в дискретные столбцы. Фильтрация данных включена автоматически, чтобы можно было сортировать или фильтровать в любом заголовке столбца. Если журналы событий 1644 из нескольких контроллеров домена находятся в одном каталоге, что и сценарий PowerShell или указанный администратором каталог, используйте фильтры для просмотра запросов LDAP, предназначенных для конкретных контроллеров домена.
Top_StartingNode Предоставляет отсортированный список секций каталогов, предназначенных для запросов LDAP в данном примере. Если большинство запросов происходят в одной секции (схема, конфигурация или домен), рассмотрите возможность добавления этой секции в качестве фильтра в оставшихся таблицах сводной таблицы. Детали детализации предоставляют верхние фильтры (например, запрос LDAP), IP-адреса клиента, выдаваемые этими запросами, и метки даты и времени для этих запросов.
Top_Callers Перечисляет IP-адреса клиента, которые выдавали запросы LDAP в порядке убывания поиска с процентом общего общего объема. Процент выполнения общей суммы помогает определить наиболее вызывающих абонентов. (То есть, первые 10 или 20 вызывающих объектов могут создавать 80 процентов тома запроса, предполагая, что слишком много вызовов являются вашей проблемой). Детали детализации предоставляют фильтры и шаги даты и времени, которые каждый клиент выдает запросы LDAP в данном примере.
Top_Filters Перечисляет наиболее часто выданные запросы LDAP в порядке убывания тома. Это включает среднее время поиска. Детали детализации предоставляют IP-адрес клиента LDAP и дату и время отправки каждого запроса.
TotalSearchTime по вызывающим абонентам Перечисляет IP-адреса клиента в порядке убывания общего времени поиска во всех запросах LDAP в примере. Детали детализации определяют запросы LDAP и дату и время выдачи каждого запроса.
TotalSearchTime по фильтрам Перечисляет запросы LDAP в порядке убывания общего времени поиска. Детали детализации предоставляют IP-адрес клиента LDAP и дату и время отправки каждого соответствующего запроса.
Поиск по рангам времени Отображает количество запросов LDAP, произошедших в квартилях на основе времени. Медленные запросы являются плохими. Более быстрые запросы хороши, если они не выдаются слишком часто. Microsoft Exchange хочет, чтобы запросы LDAP, выданные серверами Exchange, разрешались в 50 миллисекундах или меньше. Таким образом, первая группа квартиля фокусируется на этом времени "контейнер".
Пустая сводная таблица Это пустая таблица сводной таблицы, которую можно изменить по мере необходимости, чтобы отобразить определенные данные для вашего сценария.

Анализ сценариев

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

Если клиенты выдают дорогостоящие, неэффективные или множество запросов LDAP, используйте Event164Reader.ps1 для сбора данных на контроллерах домена для идентификации IP-адресов клиентов. Затем сопоставите такие запросы с идентификатором процесса, именем процесса или вызывающим приложением на клиентских компьютерах.

В следующей таблице перечислены возможные оптимизации для этой проблемы.

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

Возможные варианты идентификации приложений включают использование PROCMON, трассировки ETL/ETW и отладки для идентификации приложения, создающего запросы LDAP на клиенте. Другая стратегия заключается в том, чтобы использовать подход с разделением между двумя службами или удаление приложений, которые создают запросы LDAP. Выданные запросы могут включать вызов приложения или процесса.
Установите обновленный оптимизатор запросов LDAP. Windows Server 2012 R2 содержит обновленный оптимизатор запросов LDAP, который повышает производительность большинства запросов. Подмножества Windows Server 2012 R2 поддерживаются в Windows Server 2008 R2 и Windows Server 2012 в 2862304 исправлений.
Убедитесь, что клиенты отправляют запросы к контроллерам домена, оптимальным для сайта. Отправка запросов LDAP по глобальной сети представляет задержку сети в доставке запроса LDAP контроллеру домена и его ответ клиенту. Убедитесь, что определения сайтов и подсетей Active Directory существуют для клиентских и серверных компьютеров в Active Directory.

Убедитесь, что приложения не имеют жестко закодированных ссылок на контроллеры домена удаленного сайта или контроллеры домена, доступные для чтения, только если существуют контроллеры домена, оптимизированные для сайта.
Обратитесь к разработчикам программного обеспечения, чтобы уменьшить частоту выдачи запросов. Это включает использование кэширования. Даже эффективно выданные запросы могут сбить соответствующий размер и настроенный контроллер домена, если запросы выдаются слишком часто.
Приложениям может потребоваться ограничить объем запросов или результаты запросов кэша, чтобы уменьшить нагрузку сети, LDAP и ЦП.
Оптимизируйте запрос LDAP для более быстрого выполнения. Для быстрого выполнения синтаксиса запросов может потребоваться изменить структуру.
Перемещение элементов запроса влево или вправо в фильтре может повысить производительность.
Добавление двойного "не" может повысить производительность запросов.
Рассмотрите возможность уменьшения количества объектов, которые посещаются путем запуска запросов ниже в дереве.
Уменьшите количество атрибутов, возвращаемых запросами.
При необходимости добавьте индексы в атрибуты Active Directory. Добавление индексов может повысить производительность запросов. Это имеет побочный эффект увеличения размера базы данных и может временно отложить репликацию Active Directory во время сборки индекса.
Определите, существует ли дефект кода в оптимизаторе запросов и других компонентах. Дефекты оптимизатора запросов LDAP и других компонентов могут снизить пропускную способность.

Известная проблема

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

Например, это происходит на компьютере, когда командлет Get-Culture Windows PowerShell указывает региональный параметр следующим образом:

PS C:\Windows\System32\WindowsPowerShell\v1.0> Get-Culture  
LCID Name DisplayName  
---- ---- -----------
1031 de-DE German (Germany)

PS C:\Windows\System32\WindowsPowerShell\v1.0> Get-UICulture

LCID Name DisplayName  
---- ---- -----------
1033 en-US English (United States)

В этой ситуации числа в электронной таблице Excel отображаются, как показано на следующем снимке экрана:

Числа в проблеме с электронной таблицей Excel.

Чтобы устранить эту проблему, измените десятичный символ на период (.) в элементе параметров региона в панель управления.

Дополнительные сведения о запросах LDAP см. в следующем блоге: поиск дорогостоящих, неэффективных и длительных запросов LDAP в Active Directory