Windows Server 2008 / Active Directory
Есть ли способ измерить время ответа на запросы, поступающие в AD? У меня есть приложение, которое проверяет, существует ли пользователь в AD, и в последнее время это, похоже, занимает некоторое время (30-40 секунд). Я хотел бы знать, происходит ли задержка на стороне сервера AD или в самом приложении.
Бы csvde
быть лучшим способом сделать это? Или есть специальный инструмент для измерения производительности запросов AD? Я открыт для использования сторонних утилит, если это даст более полную картину происходящего.
Если вы подозреваете что-то на стороне AD, есть новая функция, которая обеспечивает подробную информацию о производительности в журналах событий:
Исправление добавляет данные о производительности в журнал событий Active Directory в Windows Server 2012/2008 R2 SP1
http://support.microsoft.com/kb/2800945
В этой статье представлено исправление, которое добавляет данные о производительности в журнал событий Active Directory на контроллере домена под управлением Windows Server 2012 или Windows Server 2008 R2 с пакетом обновления 1 (SP1). После установки этого исправления контроллер домена включает дополнительные фильтры для регистрации следующих данных о производительности:
Field Description
callTime
Call time (in milliseconds)
entriesReturned
Entries returned
entriesVisited
Entries visited
filter
Used filter
index
Used indexes
pagesReferenced
Pages referenced
pagesRead
Pages read from disk
pagesPreread
Pages pre-read from disk
pagesDirtied
Clean pages modified
pagesRedirtied
Dirty pages modified
Примечание. Вы можете собрать данные о производительности в журнале событий Active Directory, чтобы проанализировать причину сбоя.
После установки этого исправления сокращается работа, необходимая для устранения проблем, связанных с неожиданно высокой загрузкой ЦП в процессе Lsass.exe и длительным временем входа в систему. В частности, дополнительные фильтры, описанные в разделе «Симптомы», добавляются к событию с идентификатором 1644. Когда установлен уровень ведения журнала Field Engineering, событие с идентификатором 1644 также может регистрироваться, когда запрос LDAP превышает порог времени. Пороговое значение времени настраивается в параметре DWORD с именем Порог времени поиска (миллисекунды), который находится в следующем подразделе реестра:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NTDS\Parameters
Когда включен уровень ведения журнала «Полевая инженерия», а запись реестра «Порог времени поиска (миллисекунды)» не используется или имеет значение 0, значение порога времени по умолчанию составляет 300 000 миллисекунд.
Дополнительные сведения о том, как использовать событие 1644 для устранения проблем с производительностью запросов LDAP, см. На следующем веб-сайте Microsoft:
Создание более эффективных приложений с поддержкой Microsoft Active Directory
http://msdn.microsoft.com/en-us/library/ms808539.aspx
Как насчет
Measure-Command {get-aduser -filter * -properties *|select $_.givenname,$_.sn,$_.mail, $_.mailnickname}
или что-то подобное (в зависимости от того, какие атрибуты и т. д. ваши запросы приложения)?
Что забавно, раньше был (возможно, он все еще есть из быстрого поиска в Google) инструмент на Novell под названием «Прошедшее время», который делал что-то очень похожее на это.
Это выглядит как ADFind от JoeWare может дать вам прошедшее время ... это может помочь.
http://www.joeware.net/freetools/tools/adfind/usage.htm
Похоже, что эти два переключателя помогут:
-прошедший Отображение времени в секундах, в течение которого выполнялся поиск.
-прошлый Отображение затраченного времени в секундах для различных точек выполнения.