Suorituskyky
For AI agents: a documentation index is available at /llms.txt; a markdown version of this page is available at /fi/docs/04-performance/index.md.
DNS-vianmäärityslokit vilkkaalla toimialueen ohjaimella ovat suuria. Convert-DNSDebugLogFile on suunniteltu tätä varten: sitä on testattu yli 100 Mt:n lokitiedostoilla, ja se käsittelee ne minuuteissa tavallisella palvelinlaitteistolla.
Miksi se on nopea
Et tarvitse tätä tietoa moduulin käyttämiseen, mutta se selittää havaitsemasi käyttäytymisen.
| Tekniikka | Huomattava vaikutus |
|---|---|
StreamReader / StreamWriter 64 kt puskureilla | Tiedosto luetaan ja kirjoitetaan paloissa yhden suuren Get-Content-kutsun sijaan |
| Virtaava, yksinkertainen läpikäynti | Muistin käyttö pysyy suunnilleen samana riippumatta lokin koosta |
Merkkijono-operaatiot (.Substring(), .IndexOf()) säännöllisten lausekkeiden sijaan | Huomattavasti vähemmän CPU-käyttöä per rivi, ja rivejä on miljoonia |
CSV kirjoitetaan käsin Export-Csv-komennon sijaan | Ei objektiputken ylikuormitusta per tietue |
| Tilastojen kokoaminen hashtablen avulla | Yhteenvedot maksavat lähes mitään saman läpikäynnin aikana |
Tärkeä seuraus: koko lokia ei koskaan pidetä muistissa kerralla. 500 Mt:n loki ei tarvitse 500 Mt RAM-muistia. Tämä erottaa moduulin kotikutoisista skripteistä, jotka lukevat tiedoston, pilkkovat sen ja rakentavat objekteja — tuo lähestymistapa toimii hyvin 5 Mt:n näytteellä, mutta kaatuu oikealla DC:llä.
Parhaan suorituskyvyn saaminen
Muunna kiertävät palat, älä yhtä jättitiedostoa
Määritä DNS-palvelin kierrättämään loki hallittavissa olevassa koossa — 50–200 Mt on hyvä haarukka. Useat keskikokoiset tiedostot muuntuvat ennustettavasti ja ajoitettu tehtävä ehtii valmistua ajoissa. Yksi jatkuvasti kasvava tiedosto ei.
Kiertäminen antaa myös suljetut tiedostot käsiteltäväksi, mikä on muutenkin toivottavaa:
Get-ChildItem "C:\Administration\Logs\DNSServer\*.log" |
Sort-Object LastWriteTime -Descending |
Select-Object -Skip 1 |
Convert-DNSDebugLogFile -ComputerName $env:COMPUTERNAME
Ohita yksityiskohtainen jäsentäminen, jos et tarvitse sitä
Jos DNS-palvelin kirjoittaa täydelliset pakettitiedot, niiden muuntaminen JSON-muotoon on muunnoksen kallein osa.
Convert-DNSDebugLogFile -InputFile "C:\Logs\dns.log" -NoDetailsParsing
Odota 30–50 % nopeampia suorituksia lokeilla, joissa on paljon yksityiskohtaisia lohkoja, sekä huomattavasti pienempi CSV. Saat silti kyselytason tiedot ja TCP/UDP-yksityiskohtaisen otsikkorivin Information-tietueessa. Katso Parametrit ja asetukset.
Suodata aikaisin
-ContextFilter Packet pudottaa palvelinmuistiinpanot ja tapahtumat ennen niiden kirjoittamista. Vähemmän tulostusta tarkoittaa vähemmän I/O:ta, pienempiä tiedostoja ja vähemmän työtä jälkikäsittelyssä.
Pyydä vain tarvitsemasi
-OutputType Statistic ohittaa rivikohtaisen CSV:n kirjoittamisen kokonaan. Jos kojelaudallasi näytetään vain päivittäiset määrät, tämä on selvästi halvin vaihtoehto.
Muunna paikallisesti, siirrä tulokset
Moduuli lukee SMB/UNC-polkuja, mutta 200 Mt:n raakaa lokia siirtäminen verkon yli keskitettyyn jäsentämiseen on hidas tapa. Muunna DNS-palvelimella ja siirrä sitten (pakattu) CSV — se on yleensä kymmenesosa tavuista. Tämä on suunnittelun taustalla GPO-ohjatun keräyksen esimerkissä.
Pakkaa siirtoa ja arkistointia varten
Convert-DNSDebugLogFile -InputFile "C:\Logs\dns.log" -CompressOutput
Tämän muotoinen CSV kutistuu tyypillisesti 90 % tai enemmän. Pakkaus vaatii hieman CPU:ta suorituksen lopussa, mutta säästää paljon levytilaa ja verkon kaistaa myöhemmin.
Kun suoritus on odotettua hitaampi
Tarkista nämä järjestyksessä:
- Levy, ei CPU. Muunnos on I/O-raskas. Lokitiedosto vilkkaalla asemalla tai hidas linkki hallitsee suoritusaikaa.
- Yksityiskohtaiset lohkot. Jos lokissa on täydelliset pakettitiedot etkä käyttänyt
-NoDetailsParsing-valitsinta, aika kuluu niihin. - Tiedoston koko. Yksi monigigatavun loki kestää kauan joka tapauksessa. Korjaa tämä kierrätyksellä, älä parametreilla.
- Virustorjunta. Sekä lähdelokin että tuotetun CSV:n reaaliaikainen tarkistus voi kaksinkertaistaa I/O-kustannukset. Poissulku lokihakemistolle on yleinen ja järkevä toimenpide.
- Muistipaine. Moduuli käyttää virtausta, joten sen ei pitäisi olla syy — mutta palvelin, joka jo käyttää swap-tilaa, hidastaa kaikkea.
Lisää oireita ja korjauksia on koottu Vianmääritykseen.