<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Altentee &#187; Performance &#38; Test Automation Experts &#187; apache</title>
	<atom:link href="http://altentee.com/tag/apache/feed/" rel="self" type="application/rss+xml" />
	<link>http://altentee.com</link>
	<description>Performance and Test Automation Experts</description>
	<lastBuildDate>Sat, 12 Jun 2010 00:35:08 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Understanding %D in LogFormat for apache2 logs</title>
		<link>http://altentee.com/2009/understanding-d-in-logformat-for-apache2-logs/</link>
		<comments>http://altentee.com/2009/understanding-d-in-logformat-for-apache2-logs/#comments</comments>
		<pubDate>Fri, 11 Sep 2009 06:23:12 +0000</pubDate>
		<dc:creator>Tim Koopmans</dc:creator>
				<category><![CDATA[90kts]]></category>
		<category><![CDATA[Altentee]]></category>
		<category><![CDATA[apache]]></category>

		<guid isPermaLink="false">http://90kts.com/blog/2009/understanding-d-in-logformat-for-apache2-logs/</guid>
		<description><![CDATA[<p>A colleague recently asked me if %D, when used in your LogFormat for apache2 access logs includes the &#8216;download&#8217; time of transmitting the response back to the client.</p>
<p>Following are observations from my apache2 access logs when using the %D format code. The first column is %D in the following log entries.</p>
<p># 5 second pause on [...]]]></description>
			<content:encoded><![CDATA[<p>A colleague recently asked me if %D, when used in your LogFormat for apache2 access logs includes the &#8216;download&#8217; time of transmitting the response back to the client.</p>
<p>Following are observations from my apache2 access logs when using the %D format code. The first column is %D in the following log entries.</p>
<p># 5 second pause on server side code. In this test case I deliberately induce a 5 second delay on server side code using the php sleep function. This delay can be seen in the timestamp (microseconds)<br />
<code>5003909 138.130.86.92 - - [11/Sep/2009:16:43:50 +1000] "GET /test.php HTTP/1.1" 200 139 "-" "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3"</code></p>
<p># Static image open bandwidth. In this test case I let the browser download a static image as fast as my mobile broadband permits. The time takes approx 4.8 secs to download approx 900KB.<br />
<code>4860133 138.130.86.92 - - [11/Sep/2009:17:00:51 +1000] "GET /gorilla.jpg HTTP/1.1" 200 912128 "-" "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3"</code></p>
<p># Static image restricted bandwidth. In this case I restrict the bandwidth to any destination port of 80 to 1KB/sec using ipfw[1]. This time it takes approx 12.8 secs to download the same file.<br />
<code>12891663 138.130.86.92 - - [11/Sep/2009:17:02:56 +1000] "GET /gorilla.jpg HTTP/1.1" 200 912128 "-" "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3"</code></p>
<p>[1] to restrict bandwidth on my mac I did this:<br />
<code>sudo ipfw pipe 1 config bw 1KByte/s<br />
sudo ipfw add 1 pipe 1 dst-port 80<br />
sudo ipfw delete 1</code></p>
<p>To sum up, when using %D in LogFormat for apache2, this timestamp is increased by any:<br />
1. server side processing delays<br />
2. delays attributed to restricted bandwidth etc</p>
<p>QED</p>
]]></content:encoded>
			<wfw:commentRss>http://altentee.com/2009/understanding-d-in-logformat-for-apache2-logs/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Establishing Concurrency from your Web Logs</title>
		<link>http://altentee.com/2009/establishing-concurrency-from-your-web-logs/</link>
		<comments>http://altentee.com/2009/establishing-concurrency-from-your-web-logs/#comments</comments>
		<pubDate>Fri, 09 Jan 2009 03:25:23 +0000</pubDate>
		<dc:creator>Tim Koopmans</dc:creator>
				<category><![CDATA[90kts]]></category>
		<category><![CDATA[Altentee]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[tools]]></category>

		<guid isPermaLink="false">http://90kts.com/blog/2009/establishing-concurrency-from-your-web-logs/</guid>
		<description><![CDATA[<p>I recently had a conversation with a colleague about how one might determine the concurrency for a given page or transaction at any point in time. The system under test was a typical web server and we had access to the web logs for analysis.</p>
<p>That is, we wanted to know how many virtual users were [...]]]></description>
			<content:encoded><![CDATA[<p>I recently had a conversation with a colleague about how one might determine the concurrency for a given page or transaction at any point in time. The system under test was a typical web server and we had access to the web logs for analysis.</p>
<p>That is, we wanted to know how many virtual users were hitting a web page at the same time without using a sledgehammer to open the walnut so to speak&#8230; To that end we fell back to simple unix commands like awk, sort and uniq.</p>
<p>The typical web log entry we were looking for looked like this:<br />
<code>10.1.20.10 - Unauth [16/Dec/2008:11:59:16 +1100] "GET HTTP://system.under.test/secure.html HTTP/1.1" 200 692</code></p>
<p>On windows we would use a command similar to this to generate our report:<br />
<code>gawk "{print $4,$7}" web01-request.log | grep "\/secure" | uniq -c | sort -T C:\temp | gawk "{print $1}" | uniq -c</code></p>
<p>The first awk prints the date time column and url column which we then grep for any entries containing our target word &#8217;secure&#8217; (we could have done this in the awk statement too).</p>
<p>Then we use uniq -c to generate a unique count of rows that have the same date time, sort that (using a temp file), awk again on the first column and uniq -c again. The output looks like this:<br />
<code><br />
   2218 1<br />
   1483 2<br />
    263 3<br />
    258 4<br />
     38 5<br />
     36 6<br />
      2 7<br />
      5 8<br />
      1 12<br />
</code><br />
So we can then determine for example that there were 1,483 occurrences where 2 virtual users hit the target at the same time. There were 258 occurrences where 4 virtual users hit the target at the same time and so on.</p>
<p>You can then graph this using the google chart API. No excel required =)<br />
<img src="http://chart.apis.google.com/chart?chs=250x100&#038;cht=bhs&#038;chd=t:2218,1483,263,258,38,36,2,5,1&#038;chxl=0:|12|8|7|6|5|4|3|2|1&#038;chxt=y&#038;chbh=a&#038;chds=0,2218"  /></p>
]]></content:encoded>
			<wfw:commentRss>http://altentee.com/2009/establishing-concurrency-from-your-web-logs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
