<?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>Statistical Graphics &#38; Data Visualization &#187; web caching</title>
	<atom:link href="http://enciety.com/community/R/tag/web-caching/feed/" rel="self" type="application/rss+xml" />
	<link>http://enciety.com/community/R</link>
	<description>Innovation and New Experimentation Model with R</description>
	<lastBuildDate>Fri, 21 May 2010 03:44:06 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Analisis Sederhana Access Log SQUID Menggunakan R</title>
		<link>http://enciety.com/community/R/2008/09/23/analisis-sederhana-access-log-squid-menggunakan-r/</link>
		<comments>http://enciety.com/community/R/2008/09/23/analisis-sederhana-access-log-squid-menggunakan-r/#comments</comments>
		<pubDate>Tue, 23 Sep 2008 08:00:13 +0000</pubDate>
		<dc:creator>Unung Istopo</dc:creator>
				<category><![CDATA[R Scripts]]></category>
		<category><![CDATA[squid]]></category>
		<category><![CDATA[web caching]]></category>

		<guid isPermaLink="false">http://www.enciety.com/community/R/?p=74</guid>
		<description><![CDATA[Aktivitas jaringan internet  memang menarik untuk dianalisis, apalagi jika NOC perusahaan memiliki sistem administrasi jaringan yang bagus. Trouble yang ditemui membuat admin selalu belajar meningkatkan performansi layanan. Pada tulisan ini, penulis mengolah data access log squid yang ditempatkan pada proxy server. 
Data access log dapat kita copy dan diletakkan dalam folder khusus atau diakses [...]]]></description>
			<content:encoded><![CDATA[<p>Aktivitas jaringan internet  memang menarik untuk dianalisis, apalagi jika NOC perusahaan memiliki sistem administrasi jaringan yang bagus. Trouble yang ditemui membuat <em>admin</em> selalu belajar meningkatkan performansi layanan. Pada tulisan ini, penulis mengolah data <em>access log</em> <a href="http://en.wikipedia.org/wiki/Squid_cache">squid</a> yang ditempatkan pada <a href="http://en.wikipedia.org/wiki/Proxy_server">proxy server</a>. </p>
<p>Data <em>access log</em> dapat kita copy dan diletakkan dalam folder khusus atau diakses <em>real time</em>. Data ini kita baca menggunakan fungsi <em>read.table</em> sebagai berikut :</p>
<blockquote><p>
> read.table(&#8220;/var/log/squid/access.log&#8221;) -> myaccess.log
</p></blockquote>
<p>Data myaccess.log terdiri dari sepuluh variabel penting <em>web caching.</em></p>
<p><em><strong>1.  Waktu pencatatan access log.</strong></em></p>
<p>Dengan menggunakan <a href="http://stat.ethz.ch/R-manual/R-patched/library/base/html/as.POSIXlt.html">Date-Time Conversion Functions</a> di R, kita dapat mengetahui rentang waktu pencatatan access.log. Dalam <em>obyek</em> myaccess.log di atas, melalui variabel pertama kita dapat mengetahui waktu pencatatan log.  Berikut ini script untuk menampilkan data waktu :</p>
<blockquote><p>
> myaccess.log[1,1] -> z1 # Start pencatatan access.log</p>
<p>> myaccess.log[nrow(myaccess.log),1] -> z2 # Akhir pencatatan access.log
</p></blockquote>
<p>Kemudian data pada obyek z1 dan z2 tersebut kita convert berdasarkan <a href="http://en.wikipedia.org/wiki/Unix_time">Unix Time / POSIX Time</a> dengan menggunakan script sebagai berikut :</p>
<blockquote><p>
>  ISOdatetime(1970,1,1,0,0,0) + z1 -> start.time.mylog<br />
>  ISOdatetime(1970,1,1,0,0,0) + z2 -> end.time.mylog
</p></blockquote>
<p>Berdasarkan hasil tersebut maka waktu rentang pencatatan log adalah </p>
<p><em>mulai :</em> 2008-09-20 23:25:07Z<br />
<em>akhir :</em> 2008-09-21 10:43:17Z , </p>
<p>atau selama <strong>11.30275</strong> jam. </p>
<p><em><strong>2.  Tipe Content paling sering diakses.</strong></em></p>
<p>Untuk mengetahui <em>summary most popular content type</em>, dapat kita analisis variabel lima dan sepuluh data myaccess.log. </p>
<p>Berikut ini script sederhana untuk menampilkan persentase akses, volume dan rata-rata dalam tiap tipe konten.</p>
<blockquote><p>
> table(myaccess.log[[10]]) -> count.mylog<br />
> tapply(myaccess.log[[5]],myaccess.log[[10]],sum) -> volume.mylog<br />
> tapply(myaccess.log[[5]],myaccess.log[[10]],mean) -> mean.size
</p></blockquote>
<p>Dalam analisis ini kita tidak menyertakan kelompok <em>tanpa content (-), yaitu 302 (Found) dan 304 (Not Modified).</em> Untuk itu, ada beberapa tambahan script sedikit untuk menghilangkan kelompok yang tidak kita kehendaki.</p>
<blockquote><p>
> count.mylog[rownames(count.mylog) != "-"] -> count.mylog.with<br />
> volume.mylog[rownames(volume.mylog) != "-"] -> volume.mylog.with<br />
>  mean.size[rownames(mean.size) != "-"] -> mean.size.with
</p></blockquote>
<p>Berdasarkan obyek-obyek diatas maka summary analisis dapat kita tampilkan menjadi satu  melalui fungsi <em>cbind</em>.</p>
<blockquote><p>
> summary.myaccess.log < - cbind(count.mylog.with/sum(count.mylog.with)*100,volume.mylog.with/sum(volume.mylog.with)*100,mean.size.with/1000)
</p></blockquote>
<p>Hasil akhir dapat ditampilkan dengan mengurutkan kelompok tipe konten berdasarkan persentase jumlah akses tertinggi.</p>
</blockquote>
<blockquote><p>
> summary.myaccess.log[order(summary.myaccess.log[,1],decreasing=TRUE),] -> result1
</p></blockquote>
<p><!-- html table generated in R 2.4.1 by xtable 1.3-0 package --><br />
<!-- Tue Sep 23 15:21:22 2008 --></p>
<table border=0>
<tr>
<th> <strong>Content Type</strong></th>
<th> <strong>Count (%)</strong> </th>
<th> <strong>Volume (%) </strong></th>
<th> <strong>Mean Size (KB)</strong> </th>
</tr>
<tr>
<td colspan=4>
<hr /></td>
</tr>
<tr>
<td align="right"> application/octet-stream </td>
<td align="right"> 21.79 </td>
<td align="right"> 75.94 </td>
<td align="right"> 86.27 </td>
</tr>
<tr>
<td align="right"> text/html </td>
<td align="right"> 19.41 </td>
<td align="right"> 2.71 </td>
<td align="right"> 3.46 </td>
</tr>
<tr>
<td align="right"> text/plain </td>
<td align="right"> 15.84 </td>
<td align="right"> 0.36 </td>
<td align="right"> 0.57 </td>
</tr>
<tr>
<td align="right"> image/gif </td>
<td align="right"> 15.60 </td>
<td align="right"> 1.68 </td>
<td align="right"> 2.67 </td>
</tr>
<tr>
<td align="right"> image/jpeg </td>
<td align="right"> 12.09 </td>
<td align="right"> 10.07 </td>
<td align="right"> 20.63 </td>
</tr>
<tr>
<td align="right"> image/png </td>
<td align="right"> 4.11 </td>
<td align="right"> 0.72 </td>
<td align="right"> 4.32 </td>
</tr>
<tr>
<td align="right"> text/javascript </td>
<td align="right"> 2.51 </td>
<td align="right"> 0.45 </td>
<td align="right"> 4.44 </td>
</tr>
<tr>
<td align="right"> application/x-javascript </td>
<td align="right"> 2.39 </td>
<td align="right"> 0.76 </td>
<td align="right"> 7.87 </td>
</tr>
<tr>
<td align="right"> application/vnd.google-earth.kmz </td>
<td align="right"> 1.56 </td>
<td align="right"> 0.59 </td>
<td align="right"> 9.45 </td>
</tr>
<tr>
<td align="right"> application/x-shockwave-flash </td>
<td align="right"> 1.56 </td>
<td align="right"> 5.92 </td>
<td align="right"> 94.08 </td>
</tr>
<tr>
<td align="right"> text/css </td>
<td align="right"> 1.24 </td>
<td align="right"> 0.26 </td>
<td align="right"> 5.17 </td>
</tr>
<tr>
<td align="right"> text/xml </td>
<td align="right"> 0.65 </td>
<td align="right"> 0.18 </td>
<td align="right"> 6.79 </td>
</tr>
<tr>
<td align="right"> image/x-icon </td>
<td align="right"> 0.52 </td>
<td align="right"> 0.08 </td>
<td align="right"> 4.03 </td>
</tr>
<tr>
<td align="right"> application/javascript </td>
<td align="right"> 0.38 </td>
<td align="right"> 0.10 </td>
<td align="right"> 6.31 </td>
</tr>
<tr>
<td align="right"> application/pkix-crl </td>
<td align="right"> 0.15 </td>
<td align="right"> 0.01 </td>
<td align="right"> 0.96 </td>
</tr>
<tr>
<td align="right"> application/vnd.google-earth.kml+xml </td>
<td align="right"> 0.13 </td>
<td align="right"> 0.03 </td>
<td align="right"> 5.94 </td>
</tr>
<tr>
<td align="right"> application/xml </td>
<td align="right"> 0.04 </td>
<td align="right"> 0.00 </td>
<td align="right"> 0.66 </td>
</tr>
<tr>
<td align="right"> image/vnd.microsoft.icon </td>
<td align="right"> 0.03 </td>
<td align="right"> 0.00 </td>
<td align="right"> 0.85 </td>
</tr>
<tr>
<td align="right"> application/pdf </td>
<td align="right"> 0.01 </td>
<td align="right"> 0.13 </td>
<td align="right"> 260.05 </td>
</tr>
<tr>
<td align="right"> dat </td>
<td align="right"> 0.01 </td>
<td align="right"> 0.00 </td>
<td align="right"> 2.85 </td>
</tr>
</table>
<p><em><strong>3.  Mean dan Median Service Times.</strong></em></p>
<p>Dengan menggunakan data pada variabel kedua, maka dengan menggunakan script R berikut ini kita dapat memperoleh nilai ukuran pemusatan <em>Service Times pada cache.</p>
<blockquote><p>
> tapply(myaccess.log[[2]],myaccess.log[[4]],mean) -> mean.time<br />
> tapply(myaccess.log[[2]],myaccess.log[[4]],median) -> median.time</p>
<p>> summary.time.myaccess.log < - cbind(mean.time/1000,median.time/1000)</p>
<p>> summary.time.myaccess.log[order(summary.time.myaccess.log[,1],decreasing=TRUE),] -> result2
</p></blockquote>
<p>Hasilnya adalah sebagai berikut :</p>
<p><!-- html table generated in R 2.4.1 by xtable 1.3-0 package --><br />
<!-- Wed Sep 24 15:20:47 2008 --></p>
<table border=0>
<tr>
<th> Type </th>
<th> Mean (sec) </th>
<th> Median (sec) </th>
</tr>
<tr>
<td colspan=3>
<hr /></td>
</tr>
<tr>
<td align="right"> TCP_REFRESH_HIT/200 </td>
<td align="right"> 12.85 </td>
<td align="right"> 0.25 </td>
</tr>
<tr>
<td align="right"> TCP_MISS/200 </td>
<td align="right"> 3.63 </td>
<td align="right"> 0.73 </td>
</tr>
<tr>
<td align="right"> TCP_CLIENT_REFRESH_MISS/200 </td>
<td align="right"> 2.68 </td>
<td align="right"> 1.86 </td>
</tr>
<tr>
<td align="right"> TCP_MISS/000 </td>
<td align="right"> 2.32 </td>
<td align="right"> 2.81 </td>
</tr>
<tr>
<td align="right"> TCP_MISS/503 </td>
<td align="right"> 2.19 </td>
<td align="right"> 1.99 </td>
</tr>
<tr>
<td align="right"> TCP_REFRESH_MISS/200 </td>
<td align="right"> 1.49 </td>
<td align="right"> 1.40 </td>
</tr>
<tr>
<td align="right"> TCP_MISS/411 </td>
<td align="right"> 1.30 </td>
<td align="right"> 1.30 </td>
</tr>
<tr>
<td align="right"> TCP_MISS/403 </td>
<td align="right"> 0.89 </td>
<td align="right"> 0.89 </td>
</tr>
<tr>
<td align="right"> TCP_MISS/400 </td>
<td align="right"> 0.75 </td>
<td align="right"> 0.75 </td>
</tr>
<tr>
<td align="right"> TCP_MISS/302 </td>
<td align="right"> 0.72 </td>
<td align="right"> 0.58 </td>
</tr>
<tr>
<td align="right"> TCP_MISS/301 </td>
<td align="right"> 0.58 </td>
<td align="right"> 0.48 </td>
</tr>
<tr>
<td align="right"> TCP_MISS/404 </td>
<td align="right"> 0.48 </td>
<td align="right"> 0.43 </td>
</tr>
<tr>
<td align="right"> TCP_MISS/204 </td>
<td align="right"> 0.44 </td>
<td align="right"> 0.47 </td>
</tr>
<tr>
<td align="right"> TCP_MEM_HIT/200 </td>
<td align="right"> 0.30 </td>
<td align="right"> 0.02 </td>
</tr>
<tr>
<td align="right"> TCP_MISS/207 </td>
<td align="right"> 0.26 </td>
<td align="right"> 0.22 </td>
</tr>
<tr>
<td align="right"> TCP_MISS/401 </td>
<td align="right"> 0.25 </td>
<td align="right"> 0.17 </td>
</tr>
<tr>
<td align="right"> TCP_MISS/304 </td>
<td align="right"> 0.21 </td>
<td align="right"> 0.15 </td>
</tr>
<tr>
<td align="right"> TCP_DENIED/400 </td>
<td align="right"> 0.17 </td>
<td align="right"> 0.17 </td>
</tr>
<tr>
<td align="right"> TCP_REFRESH_HIT/304 </td>
<td align="right"> 0.16 </td>
<td align="right"> 0.14 </td>
</tr>
<tr>
<td align="right"> TCP_HIT/200 </td>
<td align="right"> 0.06 </td>
<td align="right"> 0.01 </td>
</tr>
<tr>
<td align="right"> TCP_IMS_HIT/304 </td>
<td align="right"> 0.02 </td>
<td align="right"> 0.01 </td>
</tr>
<tr>
<td align="right"> TCP_DENIED/413 </td>
<td align="right"> 0.01 </td>
<td align="right"> 0.01 </td>
</tr>
<tr>
<td align="right"> TCP_NEGATIVE_HIT/404 </td>
<td align="right"> 0.00 </td>
<td align="right"> 0.00 </td>
</tr>
</table>
<p>Demikian, masih banyak informasi yang bisa didalami, terutama rekan-rekan yang suka dalam </em><em>web caching</em>.  Banyak aplikasi analisis squid tersedia bebas (free &#038; open source), sehingga mudah2an script sederhana ini dapat membuat kita semakin sayang dengan data terdekat kita dan mampu melakukan eksplorasi sesuai kebutuhan.<br />
<em><br />
Terima kasih buat mas Iqbal (Dhodit).</em></p>
<p>Salam.</p>
<p>Unung Istopo.</p>
<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fenciety.com%2Fcommunity%2FR%2F2008%2F09%2F23%2Fanalisis-sederhana-access-log-squid-menggunakan-r%2F&amp;layout=standard&amp;show_faces=true&amp;width=450&amp;action=like&amp;colorscheme=light" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:450px;height:25px;margin-top:5px;"></iframe>]]></content:encoded>
			<wfw:commentRss>http://enciety.com/community/R/2008/09/23/analisis-sederhana-access-log-squid-menggunakan-r/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
