ASP.NET supportare la colonna vocale
Log Parser 2.2 e ASP.NET
Per personalizzare questa colonna in base alle proprie esigenze, si desidera invitare l'utente a presentare idee su argomenti di suo interesse e problemi che dovrà essere affrontato in futuri articoli della Knowledge Base e nelle colonne Del supporto vocale. È possibile inviare idee e feedback usando il modulo Chiedi. C'è anche un collegamento alla maschera nella parte inferiore di questa colonna.
Benvenuto nella colonna del supporto vocale di ASP.NET. Mi chiamo Rahul Soni e sono con Microsoft da circa due anni. Nella colonna di questo mese, discuterò alcuni dei fatti su Log Parser 2.2. Prima di passare a scenari specifici, fammi prendere un momento per descrivere lo strumento Log Parser.
Circa
Log Parser è uno strumento molto potente e versatile che fornisce l'accesso a query universali a dati basati su testo, ad esempio file di log, file XML e file CSV, nonché origini dati chiave nel sistema operativo Microsoft Windows, ad esempio il registro eventi, il Registro di sistema, il file system e il servizio directory Active Directory. Faiclic qui per scaricare lo strumento. In questa versione, è possibile analizzare molto facilmente i file seguenti dallo strumento Log Parser:
IISW3C, NCSA, IIS, IISODBC, BIN, IISMSID, HTTPERR, URLSCAN, CSV, TSV, W3C, XML, EVT, ETW, NETMON, REG, ADS, TEXTLINE, TEXTWORD, FS e COM. Sono d'accordo che l'interfaccia della riga di comando non è molto intuitiva, e lo scoprirai non appena installi ed esegui lo strumento. Ma ciò che lo strumento manca nella sensazione intuitiva è stato patched up dalla documentazione fornita per lo strumento. Darò un piccolo consiglio qui: Non lasciare che l'interfaccia della riga di comando rimandare così presto. Questo strumento è un must nel toolkit di un geek e ti aiuta molto, soprattutto se vuoi risolvere i problemi dal punto di vista delle prestazioni.
Non ho intenzione di discutere "come" utilizzare lo strumento Log Parser perché la documentazione è abbastanza buona e la cartella di installazione contiene anche una cartella "Samples\Queries" che contiene alcuni esempi. Quindi, dopo aver terminato la promozione dello strumento Log Parser, mi lasci tornare agli scenari di cui stavo parlando.Scenario 1: analisi di file di testo di grandi dimensioni per un testo specifico
Un piccolo sfondo del problema
Il cliente riscontra un problema di "accesso negato" quando ha eseguito un'operazione. È consigliabile che il cliente usi un altro eccezionale strumento denominatoFilemon e riproduca il problema. Se si tratta di un problema con gli ACL delle risorse, lo strumento Filemon sarà in grado di rilevare l'errore. Ora chiedi al cliente di inviarti il file di log filemon salvato. Ecco la parte sfortuna. Si ottiene il file (ad esempio Filemon.log), ma si scopre che le dimensioni sono enormi (Filemon registra molti dati!). Blocco note apparirà bloccato e sarà dolorosamente lento nel trovare le righe "Accesso negato" nel file di log. Microsoft Office Excel si rifiuterà di aprire completamente il file. E ora? Risposta: Aprire la finestra di comando Log Parser e utilizzare il comando seguente:
LOGPARSER "Select Text from C:\Filemon.log where Text like '%Access Denied%'" -i:TEXTLINE -q:OffCosa indica lo strumento Log Parser di analizzare ogni riga (Testo) dal file specificato (C:\Filemon.log) in cui la riga contiene 'Accesso negato'. L'opzione della riga di comando -i:TEXTLINE specifica il formato di input e l'opzione della riga di comando -q:Off indica che è dettagliata (-q[:ON|OFF]:modalità non interattiva;). Se si attiva l'opzione della riga di comando -q, le statistiche visualizzate e il nome del campo (Testo) nell'output seguente saranno assenti.
Output di esempio
Testo7447 13:49:24 explorer.exe:1200 DIRECTORY C:\ Accesso negato a StatisticsElements elaborati: 640444
Output elementi: 1 Tempo di esecuzione: 12,75 secondi Come evitare di premere INVIO più volte se il numero di record restituiti dalla query è maggiore di 10? Risposta: Usare il parametro -rtp:-1 nelle query. Questo sarà un parametro necessario nel caso in cui si desidera reindirizzare l'output in un file. Inoltre, quando si scrive in STDOUT, i record di output vengono visualizzati in batch costituiti da un numero di righe uguale al valore specificato per questo parametro. Una volta visualizzato un batch di righe, chiederà all'utente di premere un tasto per visualizzare il batch di righe successivo. Specificando "-1" per questo parametro si disabilita del tutto il batching!Uso dei file di query
Un altro modo per ottenere gli stessi risultati in modo più pulito consiste nel creare un file di query. In questo modo, è possibile modificare facilmente il file di query ed eseguirlo dalla riga di comando dello strumento Log Parser. A parte questo, è possibile creare facilmente una GUI secondo i propri gusti. La GUI carica la query SQL salvata ed esegue la query usando lo strumento Log Parser.
Se si vuole ottenere lo stesso effetto (come in Scenario 1) dalle query SQL, è possibile fornire il comando seguente:LOGPARSER -i:TEXTLINE file:C:\LPQ\SearchAnyTextfile.sql -q:offC:\LPQ\SearchAnyTextFile.sql contiene le informazioni seguenti:
Nota Creare una cartella LPQ in C:\ per utilizzare gli esempi mostrati in questa colonna.
Select Text as LineFromFile
FROM C:\Filemon.log
WHERE Text
LIKE '%Access Denied%'
Se si nota, la query ora ha un aspetto molto più pulito e ha un senso. In questo modo è possibile creare anche query più complesse e più grandi e tutto si adatterà alla riga di comando perché si usa . SQL invece dell'intera query. Non è comunque possibile inserire più di 260 caratteri nella riga di comando!
Mantenendo i vantaggi dell'uso dei file di query, userò questo metodo negli scenari seguenti. Ho tutte le mie query salvate in C:\LPQ con un'estensione sql (puoi usare la tua).Scenario 2: ricerca dei 10 file più grandi da una cartella specifica, incluse le relative sottocartelle
Un piccolo sfondo del problema
Si dispone di una cartella e contiene diverse sottocartelle e file. Si vogliono trovare i primi 10 file più grandi in quella cartella, incluse le relative sottocartelle.
So che, per una cartella specifica, è possibile cambiare semplicemente la visualizzazione (nel menu Visualizza fare clic su Dettagli) in Esplora risorse e ordinare la visualizzazione in base alle dimensioni. Ma il problema qui è che è necessario tenere conto anche del contenuto della sottocartella. Risposta: Aprire la finestra di comando dello strumento Log Parser e utilizzare il comando seguente:Logparser -i:FS file:C:\LPQ\Top10Files.sql -q:off -Recurse:-1Top10Files.sql contiene quanto segue:
SELECT TOP 10
Path,
Name,
Size,
Attributes
FROM 'C:\Program Files\Microsoft Office\*.*'
ORDER BY Size DESC
Qui -i:FS indica che stiamo interrogando il file system. È possibile visualizzare l'elenco completo dei campi formato di input FS nella documentazione e cornicere la query di conseguenza.
-Recurse:-1 implica che si vogliono includere tutte le sottocartelle. Se non si vogliono limitare tutte le sottocartelle o la ricorsione, usare 0, 1, 2 e così via. Il numero implica la profondità in cui andrà il parser. 0 significa nessuna ricorsione, 2 significa che il parser si ripete fino alla profondità 2, ecc.Output di esempio
Path Name Size Attributes
------------------------------------------------------------ ------------ -------- ----------
C:\Program Files\Microsoft Office\Office10\WINWORD.EXE WINWORD.EXE 10738448 -A--R----
C:\Program Files\Microsoft Office\Office10\EXCEL.EXE EXCEL.EXE 9358096 -A--R----
C:\Program Files\Microsoft Office\Office10\OUTLLIB.DLL OUTLLIB.DLL 6326984 -A-------
C:\Program Files\Microsoft Office\Office10\POWERPNT.EXE POWERPNT.EXE 6093584 -A--R----
C:\Program Files\Microsoft Office\Office10\MSOWC.DLL MSOWC.DLL 3041880 -A-------
C:\Program Files\Microsoft Office\Office10\CLIPPIT.ACS CLIPPIT.ACS 2904417 -A-------
C:\Program Files\Microsoft Office\Office10\GRAPH.EXE GRAPH.EXE 2144824 -A-------
C:\Program Files\Microsoft Office\Office10\1033\OUTLLIBR.DLL OUTLLIBR.DLL 1977032 -A-------
C:\Program Files\Microsoft Office\Office10\1033\XLMAIN10.CHM XLMAIN10.CHM 1646072 -A-------
C:\Program Files\Microsoft Office\Office10\MSOWCW.DLL MSOWCW.DLL 1200177 -A-------
StatisticsElementi elaborati: 1000 Output elementi: 10 Tempo di esecuzione: 0,42 secondi
Scenario 3: Ricerca delle 20 pagine più lente nel sito Web
Un piccolo sfondo del problema
Si usa Microsoft Internet Information Services (IIS) 6, alcuni siti Web ASP.NET e le prestazioni non sono soddisfatti. Si desidera ottimizzare il server e conoscere le prime 20 pagine che stanno prendendo il tempo più alto per servire dal server Web. Non è come se si determinassero le pagine che impiegano più tempo, lo si risolva e i problemi vengano risolti. Purtroppo, non ci sono punti elenco per risolvere i problemi di prestazioni. Almeno ci dovrebbe essere un modo per iniziare. Corretta?
Risposta: Aprire la finestra di comando Log Parser e utilizzare il comando seguente:Logparser -i:IISW3C file:C:\LPQ\Slowest20FilesInIIS.sql -o:DataGrid -q:offSlowest20FilesInIIS.sql contiene il codice di esempio seguente.
Select Top 20
LogRow as [Line Number],
date as [Date],
time as [Time],
c-ip as [Client-IP],
s-ip as [Server IP],
s-port as [Server Port],
cs-method as [Request Verb],
cs-uri-stem as [Request URI],
sc-bytes as [Bytes sent],
sc-status as [Status],
sc-substatus as [Sub-status],
sc-win32-status as [Win 32 Status],
time-taken as [Time Taken]
From
C:\ex060813.log
Order by time-taken desc
Qui, -i:IISW3C indica che stiamo interrogando i log W3C di IIS. È possibile visualizzare l'elenco completo dei campi del formato di input IISW3C nella documentazione e incorniciare la query di conseguenza.
-o:DataGrid implica che l'output deve essere visualizzato in una griglia dati nel modo seguente: Nota Per usare questa query, è necessario utilizzare la registrazione IISW3C e avere abilitato le proprietà Registrazione avanzata. Aprire le proprietà del sito Web, fare clic sulla scheda Sito Web , selezionare Abilita registrazione e quindi impostare il formato Di log attivo su Formato file di log esteso W3C. Fare clic su Proprietà, sulla schedaAvanzate e quindi su per selezionare tutte le opzioni.Scenario 4: Ricerca delle 20 pagine ASPX più usate nel sito Web
Un piccolo sfondo del problema
Si usa IIS 6, sono presenti alcuni siti Web ASP.NET e si vogliono conoscere i file ASPX usati più di frequente, in modo che, se si ottimizzano le prestazioni di tali pagine, alla fine vengano apportati tutti i vantaggi del sito Web o del server. È sempre meglio dedicare tempo all'ottimizzazione delle pagine più usate anziché alle pagine usate con parsimonia. Anche se potrebbero esserci eccezioni a questa regola. Supponiamo che la pagina usata con parsimonia sia una pagina molto cattiva che causa un utilizzo elevato della CPU per quella materia!) Ora, se una determinata pagina richiede molto tempo per essere servita (scenario 3) e la pagina è una delle pagine più usate, è consigliabile verificare sempre che la pagina si comporti bene sotto stress.
Risposta: Aprire la finestra di comando dello strumento Log Parser e utilizzare il comando seguente:LOGPARSER -i:IISW3C file:C:\LPQ\Popular20FilesInIIS.sql -chartType:Bar3D -groupSize:640x480 -view:onPopular20FilesInIIS.sql contiene il codice di esempio seguente.
Select Top 20
cs-uri-stem as [Request URI],
COUNT(*) AS Hits
INTO MyChart.gif
FROM C:\ex060813.log
Group by cs-uri-stem ORDER BY Hits DESC
In questo caso, -chartType:Bar3D indica allo strumento Log Parser quale tipo di grafico preparare. Il parametro -groupSize consente di specificare in pixel la larghezza e l'altezza dell'immagine di destinazione. Il set di tipi di grafico disponibili dipende dalla versione del Microsoft Office Web Components installato nel computer locale.
Ecco l'aspetto dell'output: Come avete già visto, ci potrebbero essere più modi in cui lo strumento Log Parser potrebbe rivelarsi davvero utile nell'analisi dei dati da vari log. Solo la creatività è il limite qui! Esistono modi quasi illimitati in cui i dati potrebbero riflettere un'immagine molto migliore e potrebbero essere qualcosa su cui è possibile agire. Quello che abbiamo toccato è solo la punta dell'iceberg! È anche possibile usare lingue di alto livello come Microsoft Visual C#, Microsoft Visual Basic .NET e così via, per creare programmi utili usando la potenza dello strumento Log Parser. Vedi la sezione "Risorse" di seguito.Risorse
-
Novità di Log Parser 2.2
http://www.microsoft.com/technet/scriptcenter/tools/logparser/lpfeatures.mspx
-
Come funziona Log Parser 2.2
-
Microsoft Log Parser Toolkit - un libro su Log Parser!
http://www.microsoft.com/technet/scriptcenter/tools/logparser/default.mspx
Vorrei discutere altri scenari per lo strumento Log Parser e ho creato una nuova sezione nel mio blog solo per lo strumento Log Parser. Se hai suggerimenti per scenari o query dello strumento Log Parser che vuoi condividere, inviami un messaggio di posta elettronica arahulso@microsoft.com e lo pubblicherei al più presto sul seguente sito Web:
https://learn.microsoft.com/archive/blogs/rahulso/
Come sempre, è possibile inviare idee su argomenti che si desidera vengano affrontati nelle colonne future o nella Knowledge Base usando il modulo Chiedi.
I prodotti di terze parti descritti in questo articolo sono prodotti da società indipendenti da Microsoft. Microsoft non riconosce alcuna garanzia, implicita o espressa, in relazione alle prestazioni o all'affidabilità di questi prodotti.