Dela via


Använda Event1644Reader.ps1 för att analysera LDAP-frågeprestanda i Windows Server

I den här artikeln beskrivs ett skript som hjälper till att analysera Active Directory-händelse-ID 1644 i Windows Server. Granska stegen för att använda skriptet och analysera sedan dina problem.

Ursprungligt KB-nummer: 3060643

Om Event1644Reader.ps1-skriptet

Active Directory-händelse-ID 1644 loggas i händelseloggen för Katalogtjänsten. Den här händelsen identifierar dyra, ineffektiva eller långsamma LDAP-sökningar (Lightweight Directory Access Protocol) som hanteras av Active Directory-domänkontrollanter. NTDS Allmänt händelse-ID 1644 kan filtreras för att registrera LDAP-sökningar i Directory Services-händelseloggen baserat på antalet objekt i Active Directory-databasen som besöktes, antalet objekt som returnerades eller körningstiden för LDAP-sökning på domänkontrollanten. Mer information om händelse-ID 1644 finns i Snabbkorrigering 2800945 lägger till prestandadata i Active Directory-händelseloggen.

Event1644Reader.ps1 är ett Windows PowerShell-skript som extraherar data från 1644-händelser som finns i sparade Directory Service-händelseloggar. Sedan importeras dessa data till en serie pivottabeller i ett Microsoft Excel-kalkylblad för att hjälpa administratörer att få insikter om de LDAP-arbetsbelastningar som hanteras av domänkontrollanterna och klienterna som genererar dessa frågor.

Hämta skriptet

Du kan hämta skriptet från blogginlägget Grundläggande infrastruktur och säkerhet Så här hittar du dyra, ineffektiva och långvariga LDAP-frågor i Active Directory.

Kommentar

Skriptet bifogas i blogginlägget med filnamnet Event1644Reader.zip

Ansvarsfriskrivning för Script Center
Exempelskripten stöds inte under microsofts standardsupportprogram eller -tjänst. Exempelskripten tillhandahålls som is utan garanti av något slag. Microsoft frånsäger sig ytterligare alla underförstådda garantier, inklusive, utan begränsning, underförstådda garantier för säljbarhet eller lämplighet för ett visst syfte. Hela risken som uppstår till följd av användning eller prestanda för exempelskripten och dokumentationen finns kvar hos dig. Under inga omständigheter ska Microsoft, dess författare eller någon annan som är involverad i skapandet, produktionen eller leveransen av skripten vara ansvariga för några som helst skador (inklusive, utan begränsning, skador för förlust av affärsvinster, avbrott i verksamheten, förlust av affärsinformation eller annan ekonomisk förlust) som uppstår på grund av användning av eller oförmåga att använda exempelskripten eller dokumentationen, även om Microsoft har informerats om risken för sådana skador.

Peer-stöd online
För online peer support, gå med i The Official Scripting Guys Forum! Om du vill ge feedback eller rapportera buggar i exempelskript startar du en ny diskussion på fliken Diskussioner för det här skriptet.

Så här använder du skriptet

Följ dessa steg för att bättre analysera de LDAP-frågor som samlas in i händelse-ID 1644:

  1. Kontrollera att de domänkontrollanter som du felsöker samlar in förbättrade ** 1644-händelsemetadata.

    Kommentar

    Windows Server 2012 R2 lade till förbättrad 1644-händelseloggning genom att registrera varaktigheten för LDAP-frågor och andra metadata. Den förbättrade 1644-händelseloggningen återporterades till Windows Server 2012, Windows Server 2008 R2 och Windows Server 2008 med snabbkorrigeringar 2800945.

  2. Ange värdet för följande fältteknikregisterpost till 5: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NTDS\Diagnostics\Field Engineering

    Kommentar

    Om du anger fältteknikloggens verbositet till 5 loggas andra händelser i händelseloggen för katalogtjänsten. Återställ fälttekniken till standardvärdet 0 när du inte aktivt samlar in 1 644 händelser. (Den här åtgärden kräver ingen omstart.)

  3. Om följande registerposter finns ändrar du värdena till önskat tröskelvärde i millisekunder. Om det inte finns någon viss registerpost skapar du en ny post med det namnet och anger sedan värdet till önskat tröskelvärde i millisekunder.

    Registersökväg Datatyp Standardvärde
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NTDS\Parameters\Search Time Threshold (msecs) DWORD 30,000
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NTDS\Parameters\Expensive Search Results Threshold DWORD 10,000
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NTDS\Parameters\Inefficient Search Results Threshold DWORD 1 000

    Kommentar

    • När loggningsnivån Fältteknik är aktiverad och registerposten För söktid (msecs) inte används eller är inställd på 0 är standardvärdet för tidströskelvärdet 30 000 millisekunder. (Den här åtgärden kräver ingen omstart.)
    • En strategi skulle vara att ange registervärdet för både ineffektivt tröskelvärde för sökresultat och registerinställningar för dyrt sökresultat och sedan fokusera på händelser som identifieras av tidsbegränsning för sökning (msecs). Börja med ett större värde som 100 millisekunder och minska sedan inkrementellt värdet när du optimerar de frågor som förekommer i din miljö.
    • Event1644Reader.ps1 kan parsa händelser från flera domänkontrollanter. Konfigurera inställningarna för fältteknik, söktid, dyr och ineffektiv registernyckel på alla domänkontrollanter som du vill granska LDAP-sökningar på.
  4. Ladda ned filen Event1644Reader.ps1 från Du kan hämta skriptet från blogginlägget Core Infrastructure and Security How to find expensive, inefficient and long running LDAP querys in Active Directory to the computer that will analyze saved Active Directory Service EVTX files that contain 1644 events .

    Den här datorn bör ha Microsoft Excel 2010 eller en senare version installerad och bör ha tillräckligt med diskutrymme för att vara värd för de katalogtjänsthändelseloggar som skriptet parsar.

  5. Kopiera sparade katalogtjänsthändelseloggar som innehåller 1 644 händelser från domänkontrollanterna där du aktiverade 1644-händelseloggning till 1644-analysdatorn.

  6. Högerklicka på filen Event1644Reader.ps1 i Utforskaren i Windows och välj sedan Kör med PowerShell.

    Följande är skärmbilden för det här steget:

    Högerklicka på filen Event1644Reader.ps1 och välj sedan Kör med PowerShell.

  7. Tryck på Y för att kringgå PowerShell-körningsprincipen efter behov.

  8. Ange sökvägen till DE EVTX-filer som ska parsas.

  9. När du ser uppmaningen som följande skärmbild vidtar du följande åtgärder:

    PowerShell-kommandot om att köra filen Event1644Reader.ps1.

    • Tryck på Retur för att parsa alla EVTX-filer som finns i samma katalog som filen Enent1644Reader.ps1.
    • Skriv sökvägen drive:\path som innehåller DE EVTX-filer som ska parsas.

    Kommentar

    Event1644Reader.ps1 parsar 1644 händelser i alla up-level-katalogtjänsthändelseloggar som finns i målsökvägen varje gång skriptet körs.

  10. Öppna kalkylbladet för att granska data och gå igenom serien med flikar och spara sedan Excel-kalkylbladet efter behov. Mer information om flikarna i kalkylbladet finns i genomgången av Excel-kalkylbladet som skapades av 1644Reder.ps1 .

    Kommentar

    *.csv filer som skapas av verktyget tas inte bort automatiskt. Överväg att rensa *.csv filer när undersökningen är klar.

Mer information

Genomgång av Excel-kalkylbladet som skapas av Event1644Reader.ps1

Event1644Reader.ps1 extraherar metadata från 1644 händelser i sparade Directory Service-händelseloggar och importerar dessa data till en serie flikar i ett Microsoft Excel-kalkylblad.

I följande tabell sammanfattas de data som finns på varje flik:

Tabb Beskrivning
RawData Varje datafält som samlas in av händelse-ID 1644 importeras till diskreta kolumner. Datafiltrering är automatiskt aktiverat så att du kan sortera eller filtrera på valfri kolumnrubrik. Om 1644-händelseloggar från flera domänkontrollanter finns i samma katalog som PowerShell-skriptet eller den administratörsangivna katalogen använder du filter för att visa LDAP-frågor som riktar sig till specifika domänkontrollanter.
Top_StartingNode Innehåller en sorterad lista över de katalogpartitioner som är mål för LDAP-frågor i ett visst exempel. Om de flesta frågor inträffar i en enda partition (schema, konfiguration eller domän) kan du överväga att lägga till partitionen som ett filter i de återstående pivottabellerna. Detaljerad information exponerar de översta filtren (till exempel LDAP-frågan), klient-IP-adresser som utfärdade dessa frågor samt datum- och tidsstämplar för dessa frågor.
Top_Callers Visar en lista över klient-IP-adresser som utfärdade LDAP-frågor i fallande antal sökningar med procentandel av totalsumman. Procentandelen löpande summa hjälper dig att identifiera de främsta anroparna. (Det vill säga att de 10 eller 20 främsta anroparna kanske genererar 80 procent av frågevolymen, förutsatt att för många anrop är ditt problem). Detaljerad information exponerar filter och datum- och tidssteg som varje klientutfärdad LDAP-fråga i ett visst exempel.
Top_Filters Visar de vanligaste LDAP-frågorna i fallande volymordning. Detta inkluderar genomsnittlig söktid. Detaljerad information visar LDAP-klientens IP-adress och datum och tid när varje fråga skickades.
TotalSearchTime efter uppringare Visar en lista över klientens IP-adresser i fallande ordning efter total söktid för alla LDAP-frågor i exemplet. Detaljerad information identifierar LDAP-frågorna och datum och tid när varje fråga utfärdades.
TotalSearchTime efter filter Visar en lista över LDAP-frågor i fallande ordning efter total söktid. Detaljerad information visar LDAP-klientens IP-adress och datum och tid när varje matchande fråga skickades.
Rangordning för söktid Visar antalet LDAP-frågor som har inträffat i tidsbaserade kvartar. Långsammare frågor är dåliga. Snabbare frågor är bra om de inte utfärdas för ofta. Microsoft Exchange vill att LDAP-frågor som utfärdas av Exchange-servrar ska lösas om 50 millisekunder eller mindre. Så den första kvartilgruppen fokuserar på den tiden "bucket".
Tom pivot Det här är en tom pivottabell som du kan ändra efter behov för att visa specifika data för ditt scenario.

Scenarioanalys

Om LDAP-frågor är långsamma, eller om processoranvändningen är hög på domänkontrollanter, kan detta orsakas av överdrivet utfärdade frågor, ineffektiva frågor, någon kombination av dessa frågor, atq-poolöverbelastning (Asynkron trådkö) eller massor av ändringsmeddelanden.

Om klienter utfärdar dyra, ineffektiva eller många LDAP-frågor använder du Event1644Reader.ps1 för att samla in data på domänkontrollanterna för att identifiera klienternas IP-adresser. Mappa sedan sådana frågor till process-ID, processnamn eller det anropande programmet på klientdatorerna.

I följande tabell visas möjliga optimeringar för det här problemet.

Optimering/minskning Sammanfattning
Stoppa den överdrivna arbetsbelastningen. Om många eller LDAP-frågor orsakar tjänststopp fokuserar du på de främsta anropande klienterna och arbetar för att identifiera och eliminera källan till den överdrivna arbetsbelastningen.

Möjliga alternativ för att identifiera program är att använda PROCMON, ETL/ETW-spårning och felsökningsanalys för att identifiera det program som genererar LDAP-frågor på klienten. En annan strategi är att använda en divide-by-two-metod för att antingen toppa tjänster eller ta bort program som genererar LDAP-frågor. De utfärdade frågorna kan blanda in det anropande programmet eller processen.
Installera en uppdaterad LDAP-frågeoptimerare. Windows Server 2012 R2 innehåller en uppdaterad LDAP-frågeoptimerare som förbättrar prestandan för de flesta frågor. Delmängder av Windows Server 2012 R2 backporteras till Windows Server 2008 R2 och Windows Server 2012 i snabbkorrigeringar 2862304.
Kontrollera att klienter skickar frågor till platsoptimala domänkontrollanter. Genom att skicka LDAP-frågor via WAN introduceras nätverksfördröjning i leveransen av LDAP-frågan till domänkontrollanten och dess svar till klienten. Kontrollera att Active Directory-platser och undernätsdefinitioner finns för klient- och serverdatorer i Active Directory.

Kontrollera att program inte har hårdkodade referenser till fjärrplatsdomänkontrollanter eller skrivbara domänkontrollanter endast när platsoptimala domänkontrollanter finns.
Arbeta med programutvecklare för att minska frekvensen för frågor som utfärdas. Detta inkluderar användningen av cachelagring. Även effektivt utfärdade frågor kan slå ned en domänkontrollant av lämplig storlek och konfigurerad om frågor utfärdas för ofta.
Program kan behöva begränsa sina frågevolym- eller cachefrågeresultat för att minska nätverks-, LDAP- och CPU-belastningen.
Optimera LDAP-frågan så att den körs snabbare. Frågesyntaxen kan behöva omstruktureras för att köras snabbare.
Om du flyttar frågeelement till vänster eller höger i filtret kan prestandan förbättras.
Om du lägger till ett dubbelt "inte" kan frågeprestandan förbättras.
Överväg att minska antalet objekt som besöks genom att starta frågor lägre i trädet.
Minska antalet attribut som returneras av frågor.
Lägg till index i Active Directory-attribut efter behov. Om du lägger till index kan du förbättra frågeprestandan. Detta har sidoeffekten att öka databasstorleken och kan tillfälligt fördröja Active Directory-replikeringen under indexet.
Kontrollera om det finns ett kodfel i frågeoptimeraren och andra komponenter. Defekter i LDAP-frågeoptimeraren och andra komponenter kan minska dataflödet.

Kända problem

Värdena i Excel-kalkylbladet visas inte eller återges på rätt sätt på datorer som använder icke-engelska språk.

Detta inträffar till exempel på en dator när Cmdleten Get-Culture Windows PowerShell anger den regionala inställningen enligt följande:

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)

I det här fallet återges siffror i Excel-kalkylbladet som i följande skärmbild:

Siffror i Excel-kalkylbladsproblemet.

Lös problemet genom att ändra decimaltecknet till en punkt (.) i objektet Regioninställningar i Kontrollpanelen.

Mer information om LDAP-frågor finns i följande blogg: Så här hittar du dyra, ineffektiva och långvariga LDAP-frågor i Active Directory