December, 2009

bernhard frank’s blog

[bi:frængk] - freimütiges über webhosting auf windows

 

  • Bernhard Frank's Blog

    Logparser Web-Statistik (Beispiele): Verweildauer von Clients auf Web Server abschätzen.

    • 0 Comments

    Das Ergebnis wird mit 2 Logparser Beispiel Abfragen oder Schritten durchgeführt:

    1. Erzeugen einer Datei mit Einträgen welche die IP Adresse (c-ip) und die Verweildauer (am Tag) in 10 Sekundenblöcken ablegt.
    2. Summe der IP Adressen mit entsprechender gleicher Verweildauer (über die zuvor erzeugte Datei).

    zu 1.)

    logparser -i:W3C "select c-ip,QUANTIZE(Sub(TO_TIMESTAMP( date, MAX(time) ),TO_TIMESTAMP( date, MIN(time) )),10) As [verweildauer] INTO c:\temp\logfiles\verweildauer.csv from c:\temp\logfiles\combined.log group by date,c-ip order by [verweildauer] DESC"

    erzeugt CSV Datei mit Werten wie z.B.:

    c-ip,verweildauer

    192.168.68.67,0000-01-01 00:02:40

    192.168.68.11,0000-01-01 00:02:40

    192.168.68.37,0000-01-01 00:02:40

    zu 2.)

    logparser "select top 20 to_TIME(verweildauer),count(c-ip) as [Anzahl] into c:\temp\logfiles\verweildauer.jpg from c:\temp\logfiles\verweildauer.csv group by verweildauer order by [Anzahl] DESC" -o:CHART -chartType:BarClustered -chartTitle:"TOP 20 Verweildauer" -values:OFF -groupSize:1024x768 -view:ON

  • Bernhard Frank's Blog

    Logparser Web-Statistik (Beispiele): Prozentuale Verteilung von http Anfragen in DNS Round Robin System ermitteln.

    • 0 Comments

    Bei dem System handelt es um 6 Webserver bei denen per DNS round robin eine Lastverteilung erreicht werden soll. Um die Güte / Verhalten der Lastverteilung zu überprüfen wurden die Logdateien der einzelnen Server zusammengeführt (auch mittels logparser) und eine Abfrage über die gesamte Logdatei gefahren.

    Folgende Logparser Beispiel Abfrage verwendet die PROPCOUNT Funktion um die Prozent-Werte zu berechnen - das Ganze wird dann noch auf 2 Nachkommastellen gerundet und als Tortengrafik dargestellt:

    LogParser.exe -i:W3C "select s-ip,DIV(ROUND(MUL(PROPCOUNT(*), 10000.0)),100) AS Percent into c:\temp\lb.jpg from c:\temp\combined.log group by s-ip order by Percent DESC" -chartType:PieExploded3D -chartTitle:"Loadbalancing (% of Requests)" -view:ON -filetype:jpg -values:on -categories:off

  • Bernhard Frank's Blog

    Logparser Web-Statistik (Beispiele): Vom Webserver ausgelieferte Datenmenge (MBit/min oder MBit/s) ermitteln.

    • 0 Comments

    Folgende Logparser Beispiel Abfrage summiert die Werte des sc-bytes Feldes aus der Logdatei in Minutenblöcke 'Quantize(time,60)' rechnet die erhaltene Summe in MBit um rundet ein bisschen und stellt das Ganze als Liniendiagramm dar. Da die Berechnung je nach Logdatei möglicherweise etwas länger dauert kann man den Zeitraum noch etwas eingrenzen:

    logparser -i:W3C "SELECT TO_TIMESTAMP(date,QUANTIZE(time, 60)) as [Time],DIV(To_REAL(SUM(sc-bytes)),1024000) As [MBit/min] into c:\temp\MBitperMin.jpg from C:\temp\logfiles\combined.log where date between TIMESTAMP('2009-12-10','yyyy-MM-dd') AND TIMESTAMP('2009-12-11','yyyy-MM-dd') group by s-ip,QUANTIZE(time, 60),date " -o:CHART -chartType:Line -values:OFF -groupSize:1024x768 -view:ON

     

    Hintergrund: Kurz vor dem Peak wurde ein Link zu einem Video an tausende Clients versandt.Sehen wir uns den Peak Zeitraum etwas genauer an:

    logparser -i:W3C "SELECT TO_TIMESTAMP(date,QUANTIZE(time, 1)) as [Time],DIV(To_REAL(SUM(sc-bytes)),1024000) As [MBit/sec] into c:\temp\MBitperSec.jpg from C:\temp\logfiles\combined.log where time between TIMESTAMP('09:00:00','hh:mm:ss') AND TIMESTAMP('10:00:00','hh:mm:ss') and date = TIMESTAMP('2009-12-11','yyyy-MM-dd') group by s-ip,QUANTIZE(time, 1),date" -o:CHART -values:OFF -groupSize:1024x768 -view:ON -oTsFormat:'hh:mm:ss' -charttype:Line

    Prinzipiell diegleiche Abfrage, nur wurde hier mit -oTSFormat:'hh:mm:ss' die Zeitangaben auf der x-Achse sinnvoller formatiert.

  • Bernhard Frank's Blog

    Logparser Web-Statistik (Beispiele): Spitzenbelastung und Stoßzeiten von http Anfragen / Sekunde ermitteln.

    • 0 Comments

    Folgende Logparser Beispiel Abfrage liefert die Top 5 der erreichten http Requests/sec aus der IIS Logdatei, dazu werden die Zeiten mittels Quantize commando in 1-Sekunden-Blöcken zusammengefasst:

    logparser -i:W3C "SELECT Top 5 date,QUANTIZE(time, 1) AS [Interval],Count(*) As [Hits/s]  from C:\temp\logfiles\combined.log group by s-ip,Interval,date order by [Hits/s] DESC"

    liefert:

    date       Interval Hits/s

    ---------- -------- ----

    2009-12-11 09:07:18 204

    2009-12-11 09:04:48 204

    2009-12-11 09:06:50 203

    2009-12-11 09:04:52 199

    2009-12-11 09:07:32 196

  • Bernhard Frank's Blog

    IIS Advanced Logging zeichnet keine "Performance counter" auf wenn ApplicationPoolIdentity als Identität für den Arbeitsprozess gewählt ist.

    • 0 Comments

    Szenario:

    • Win 7 + IIS 7.5 + Advanced Logging und eine Website eingerichtet.
    • Website hat eigenen ApplicationPool und läuft under der ApplicationPoolIdentity
    • Advanced Logging für Website konfiguriert und als Felder Performance Counter wie z.B. W3WP-PrivateBytes und CPU-Utilization ausgewählt.
    • Aufruf einer .aspx Seite welche ca. 10 Sekunden lang CPU verbrät.

    Problem:
    die Logfelder für die Performance counter bleiben leer (ApplicationPoolIdentity):

    #Software: IIS Advanced Logging Module

    #Version: 1.0

    #Start-Date: 2009-12-04 10:21:05.973

    #Fields:  cs-uri-stem W3WP-PrivateBytes TimeTakenMS CPU-Utilization

    /default.aspx - 10240


    Abhilfe:
    Nachdem die Application Pool Identität auf den NetworkService gesetzt wurde werden die Einträge mitgeloggt:

    #Software: IIS Advanced Logging Module

    #Version: 1.0

    #Start-Date: 2009-12-04 10:16:13.627

    #Fields:  cs-uri-stem W3WP-PrivateBytes TimeTakenMS CPU-Utilization

    /default.aspx 40357888 10350 53.58

Page 1 of 1 (5 items)