Algoritma Penggantian Cache Sebagai Optimalisasi Kinerja pada Proxy Server Abstract — Having a fast internet connection is the desire of every internet user. However, slow internet connection problems can be occurred in a particular company or organization that uses a proxy server. This report is about a research on optimizing the performance of the proxy server. Proxy server must have a good method of doing object replacement in its cache (Cache Replacement Algorithm), selecting the right method will increase performance. Changing method may give positive or negative effect on speed of internet access. This research reports performance measurement of several proxy servers that are applied on one of the internet providers in Bandung. The main parameters of measurement is Hit Ratio, Byte Hit Ratio, Response Time, and Size Distribution. The research conclusion is each Cache Replacement Algorithm has its own character dan ability in responding to the needs of each clients.
Penelitian dilakukan dengan membangun proxy server menggunakan sistem operasi Linux Ubuntu 9.04 pada jaringan internet dari salah satu Internet Service Provider di Bandung. Algoritma penggantian cache yang diteliti adalah LFUDA, GDSF, dan LRU (Least Recently Used). II. TINJAUAN PUSTAKA
Pengenalan Proxy Proxy server adalah sebuah sistem komputer yg berada di antara client yang melakukan permintaan objek dan server tujuan yang melayani permintaan objek. Dalam bentuk yang paling sederhana, proxy server memfasilitasi komunikasi antara client dan server tujuan tanpa melakukan perubahan permintaan atau balasan. Ketika client Keywords— Cache Replacement Algorithm, Caching, Proxy melakukan permintaan objek dari server tujuan, proxy Server, Squid server akan mengambil alih koneksi client dan mewakili dirinya sebagai client ke server tujuan serta meminta sumber daya atas nama client. Jika jawaban diterima, proxy I. PENDAHULUAN server mengembalikan kepada client, dan proxy akan Kata “Proxy Server” dalam jaringan internet memberikan pesan bahwa client telah berkomunikasi merupakan teknologi yang cukup sering diulas. Proxy dengan server tujuan. Server adalah sebuah server yang dapat dikonfigurasi untuk Dalam perkembangannya, proxy server dapat beberapa fungsi, seperti cache server, url filtering, dan menyaring permintaan berdasarkan berbagai aturan dan pengaturan bandwidth. Squid merupakan salah satu aplikasi memungkinkan komunikasi, permintaan dapat divalidasi proxy server yang fungsi utamanya sebagai cache server, jika permintaan tersebut tersedia didalam aturan. Aturan sehingga halaman web atau file yang sudah pernah diakses umumnya didasarkan pada alamat IP dan jenis protokol oleh pengguna akan disimpan dalam cache dari proxy server. client atau server tujuan, isi dokumen web, jenis isi web, Pengguna berikutnya yang membuka halaman web ataupun dan sebagainya [1]. file yang sama, akan mendapatkan objek yang diinginkan Proxy dalam pengertiannya sebagai perantara, bekerja dari cache proxy server tanpa harus mengunduh dari server dalam berbagai jenis protokol komunikasi jaringan dan tujuan, sehingga kecepatan akses akan meningkat. Cache dapat berada pada level-level yang berbeda pada hirarki pada proxy server tersimpan secara fisik di RAM dan layer protokol komunikasi jaringan. Sebuah perantara dapat Harddisk. Objek pada cache akan mengalami penghapusan saja bekerja pada Data-Link Layer, Network Layer, atau penggantian di waktu tertentu, metode penggantian Transport Layer maupun Application Layer dalam hirarki objek akan dilakukan sesuai replacement policy dari cache komunikasi jaringan menurut OSI Layer. Namun pengertian replacement algorithm yang dipakai. proxy server sebagian besar adalah untuk menunjuk suatu Penelitian ini membahas mengenai optimalisasi server yang bekerja sebagai proxy pada Application Layer. kinerja proxy server dengan melakukan analisis berdasarkan Secara garis besar, cara kerja proxy server adalah parameter hit ratio, byte hit ratio, response time, dan size menyimpan objek yang pernah diakses oleh seorang user, distribution. Penelitian juga akan membuktikan bahwa sehingga user lain tidak perlu mengambil objek yang sama algoritma LFUDA (Least Frequently Used with Dynamic ke server asli, melainkan cukup dari proxy server yang lebih Aging) dalam Squid merupakan algoritma yang memiliki hit dekat. Proxy server akan semakin efisien dengan semakin ratio tertinggi, sedangkan algoritma GDSF (Greedy-Dual banyaknya user. Size Frequency) pada proxy server adalah algoritma yang sangat baik digunakan di semua lingkungan pengguna internet. A.
Aplikasi Squid Menurut Rafiudin (2008), Squid merupakan mesin caching proxy untuk client web, seperti HTTP, HTTPS, FTP, gopher dan layanan sejenis lainnya. Squid mampu menurunkan konsumsi bandwidth sekaligus mempercepat waktu respons. Ini terwujud dengan melakukan caching halaman web dan menggunakan ulang halaman yang sering dikunjungi, serta squid dapat menyaring situs-situs yang boleh diakses. Squid merupakan software proxy yang banyak dipakai dan dapat diperoleh secara gratis, squid memiliki banyak fitur yang ditawarkan, juga mendukung SSL, extensive access control, dan logging request yang lengkap [3]. B.
Objek Cache Pengaturan objek sebuah cache server merupakan salah satu hal yang perlu diperhatikan. Objek disimpan pada dua level cache_dir yang besar levelnya didefinisikan pada konfigurasi utama Squid. Objek berisikan isi URL yang diminta client dan disimpan dalam bentuk file binary, masing-masing objek mempunyai metadata yang sebagian dari isinya disimpan di dalam memori untuk memudahkan melacak dimana letak objek dan apa isi dari objek tersebut. Adapun hal yang harus diamati untuk optimasi Squid adalah kapasitas harddisk untuk cache. Semakin besar kapasitas cache, berarti semakin lama umur objek tersebut bisa disimpan, jika pemakaian harddisk sudah mendekati batas atas (cache_swap_high) maka penggantian objek akan semakin sering dilakukan. Squid memiliki beberapa algoritma penggantian objek cache, antara lain LRU, LFUDA, dan GDSF. Berikut ini dipaparkan mengenai ketiga algoritma penggantian cache. 1. LRU (Least Recently Used) Cara kerja algoritma LRU adalah menggantikan halaman yang sudah tidak digunakan dalam jangka waktu yang paling lama. Pertimbangan algoritma ini yaitu berdasarkan observasi bahwa halaman yang sering diakses kemungkinan besar akan diakses kembali. 2. LFUDA (Least Frequently Used with Dynamic Aging) LFUDA adalah sebuah aturan penggantian objek yang menyimpan objek populer di dalam cache dan mencegah objek lain yang kurang populer untuk dapat masuk ke cache. LFUDA mengganti objek yang telah diakses dalam jumlah yang paling sedikit. Strategi ini mencoba untuk menjaga objek supaya tetap populer dan mengganti objek yang jarang digunakan. LFUDA merupakan pengembangan dari kebijakan LFU, dimana algoritma LFU membuang dokumen yang paling sedikit diakses. Algoritma LFU ini memiliki kelemahan yang paling utama, yaitu tidak membuang objek yang hanya populer dalam sekali waktu saja, hal ini mengakibatkan terjadinya polusi di dalam cache. LFUDA dikembangkan dalam rangka mengakomodasi kekurangan yang terjadi pada algoritma LFU, dimana dalam variasi dynamic aging ini memperhitungkan usia objek, dengan demikian memiliki C.
performa yang lebih baik dari algoritma yang ada, baik dari segi Hit Rate maupun Byte Hit Rate [2]. 3. GDSF (Greedy-Dual Size Frequency) GDSF merupakan metode penghapusan objek berdasarkan ukuran. Jadi objek yang memiliki ukuran lebih besar akan mendapatkan prioritas lebih tinggi untuk dihapus. GDSF cenderung untuk mengganti objek yang berukuran lebih besar dahulu, hal ini berfungsi untuk meminimalisir jumlah objek yang telah dikeluarkan. GDFS menggabungkan perhitungan frekuensi dalam pembuatan keputusan, sehingga objek besar yang populer akan memiliki kesempatan bertahan yang lebih baik tanpa harus dikeluarkan secara terus–menerus. Objek yang baru diakses akan ditaruh pada posisi yang jauh dari antrian penghapusan, sedangkan objek yang sudah lama tidak diakses akan lebih cepat dibuang dari cache. GDSF adalah algoritma yang dalam pengambilan keputusannya menggabungkan beberapa faktor, yaitu akses yang paling baru, nilai yang dibawa kedalam cache, ukuran objek, dan frekuensi akses dengan mekanisme aging. Mekanisme tersebut dibuat dalam rangka meningkatkan algoritma Greedy Dual biasa yang hanya mengkombinasikan akses yang paling baru dan nilai objek, serta algoritma GD-Size yang menggabungkan akses terbaru, nilai objek, dan ukuran. Mekanisme GDSF adalah dengan memberikan key untuk setiap objek, yang diperbarui secara dinamis, dan setiap kali tidak ada cukup ruang dalam cache, objek dengan key terendah akan dihapus. Key dari setiap objek diinisialisasi ketika objek dimasukkan ke dalam cache, yang menjadi nilai bagi setiap objek yang dibawa ke dalam cache. Web Cache Ratio Analisis terhadap web cache melibatkan beberapa metode yang digunakan sebagai parameter perhitungan data. Hit Ratio dan Byte Hit Ratio merupakan parameter perhitungan yang sering digunakan para peneliti untuk menganalisa web cache [4]. Namun, selain kedua parameter tersebut, terdapat beberapa parameter lain, diantaranya adalah response time dan size distribution. a. Hit Ratio Hit Ratio adalah persentase dari objek yang diambil dari cache dibandingkan dengan jumlah request yang dikirim oleh client kepada cache. b. Byte Hit Ratio Byte hit ratio adalah persentase dari jumlah byte objek yang diminta dari cache, dibandingkan dengan jumlah byte objek yang terdapat dalam cache. c. Response Time Parameter yang digunakan untuk mengetahui berapa lama waktu yang dibutuhkan client untuk melakukan request objek, baik objek yang sudah tersimpan di cache maupun yang belum dimasukkan kedalam cache sampai client mendapatkan respon atas permintaannya itu. D.
d.
Size Distribution Parameter ini digunakan untuk membandingkan ukuran objek yang dapat disimpan dengan baik dalam cache, berdasarkan request objek oleh client. III. ANALISIS DAN DESAIN
Analisis Sistem Penelitian akan melibatkan percobaan untuk menganalisis kinerja proxy server pada jaringan internet terhadap penggunaan algoritma penggantian cache LRU (Least Recently Used), LFU (Least Frequently Used), LFUAging (Least Frequently Used with Aging), dan GDSF (Greedy Dual Size Frequency). Analisis algoritma penggantian cache pada proxy server didesain dengan perangkat lunak untuk pemodelan simulasi. Model terdiri dari Web Server, Proxy Server dan Client. Web Server merupakan representasi sejumlah kelompok Server HTTP dan FTP. Proxy Server merupakan representasi satu Proxy Server yang sebenarnya. Client merupakan representasi sejumlah kelompok client yang terhubung pada intranet. Parameter pembanding yang digunakan pada penelitian ini adalah cache hit ratio, byte hit ratio, response time, dan size distribution. Parameter-parameter tersebut dapat dilihat melalui aplikasi Calamaris dan Squid Graph. Ketika client mulai melakukan request objek maka traffic penggunaan atau traffic request akan mulai terlihat. Parameter pembanding tersebut dijadikan pedoman untuk melihat algoritma mana yang paling baik digunakan. A.
Penggunaan Squid sebagai Proxy Salah satu contoh aplikasi proxy/cache server adalah Squid. Squid dikenal sebagai aplikasi proxy dan cache server yang handal. Aplikasi browser pada client melakukan request HTTP pada port 80, browser setelah dikonfigurasi akan meminta content (yang selanjutnya disebut objek) kepada cache server dengan nomor port yang telah disesuaikan dengan milik server. Port yang dipakai oleh proxy server bukan port 80 melainkan port 8080 atau 3128 (umumnya cache server menggunakan port tersebut). Saat browser mengirimkan header permintaan, sinyal http request dikirimkan ke server. Header tersebut diterima Squid dan dibaca. Dari hasil pembacaan, Squid akan melihat URL yang dibutuhkan, lalu URL ini dicocokkan dengan database cache yang ada. Pada penelitian ini, proxy di bangun terpisah dengan router, dengan tujuan agar kinerja router dan proxy bisa maksimal dan mudah untuk dialihkan ke proxy cadangan jika ada masalah pada proxy utama. B.
Analisis Cara Kerja Cache Memory Ketika client cache (CPU, web browser, sistem operasi) akan mengakses objek yang dianggap ada di dalam cache, ia akan memeriksa cache terlebih dahulu. Jika sebuah entri dapat ditemukan dengan tag yang cocok dengan yang
diinginkan dari objek, objek dalam entri digunakan sebagai gantinya. Situasi ini dikenal sebagai cache hit. Jadi, misalnya, sebuah program web browser akan memeriksa cache lokal pada disk untuk melihat apakah ia memiliki salinan lokal dari isi halaman web pada URL tertentu. Dalam contoh ini, URL tag, dan isi dari halaman web objek tersebut. Persentase akses yang menghasilkan hits cache dikenal sebagai hit rate atau rasio hit cache. Situasi alternatif, ketika cache ditemukan tidak berisi objek dengan tag yang diinginkan, maka akan dikenal sebagai cache miss. Objek yang belum ada dalam cache, akan diambil dari server asli kemudian akan disimpan di dalam cache dan siap untuk pengaksesan berikutnya. Ketika processor membutuhkan suatu data, pertamatama ia akan mencarinya pada cache. Jika data yang dicarinya ditemukan, processor akan langsung membacanya dengan delay yang sangat kecil. Tetapi jika data yang dicari tidak ditemukan maka processor akan mencarinya pada RAM yang kecepatannya lebih rendah. Pada umumnya, cache dapat menyediakan data yang dibutuhkan oleh processor sehingga pengaruh kerja RAM yang lambat dapat dikurangi. Dengan cara ini maka bandwidth memory akan naik dan kerja processor menjadi lebih efisien. Selain itu kapasitas cache memory yang semakin besar juga akan meningkatkan kecepatan kerja komputer secara keseluruhan. Dua jenis cache yang sering digunakan dalam dunia komputer adalah memory caching dan disk caching. Implementasinya dapat berupa sebuah bagian khusus dari memori utama komputer atau sebuah media penyimpanan data khusus yang berkecepatan tinggi. Implementasi memory caching sering disebut sebagai memory cache dan tersusun dari memori komputer jenis RAM yang berkecepatan tinggi. Sedangkan implementasi disk caching menggunakan sebagian dari harddisk pada komputer. Ada beberapa istilah yang paling umum dalam cache Squid yaitu : 1. Cache hit, jika data diminta oleh unit yang lebih tinggi dan ada dalam cache disebut “hit”. Permintaan dapat dilayani dengan cepat. Maksud urutan unit dari rendah hingga tinggi yaitu: Steamer – Hardisk Memory – Second Level – First level – CPU cache.
Gambar 1. Cache Hit [5]
C.
2.
Cache miss, bila data yang diminta tidak ada dalam cache, harus diambil dari unit dibawahnya yang cukup memakan waktu. Ini disebut miss (gagal).
2.
Konfigurasi Algoritma GDSF Gambar 5 menunjukkan konfigurasi penggunaan algoritma GDSF.
Gambar 2. Cache Miss [5]
IV. IMPLEMENTASI Instalasi Squid Sebelum mengaktifkan server proxy, harus dilakukan instalasi paket Squid yang dibutuhkan sebagai proxy eksternal. Setelah instalasi selesai, langkah selanjutnya adalah melakukan konfigurasi Squid dengan cara mengatur file squid.conf. Untuk konfigurasi Squid, pada penelitian ini hanya difokuskan pada konfigurasi kapasitas cache memory yang akan digunakan dan konfigurasi algoritma replacement policy yang akan diteliti. A.
Gambar 5. Konfigurasi Algoritma GDSF
3.
Konfigurasi Algoritma LRU Gambar 6 menunjukkan konfigurasi penggunaan algoritma LRU.
Konfigurasi Cache Memory Gambar 3 menunjukkan konfigurasi memory hardisk yang digunakan untuk menyimpan objek-objek yang di request oleh client. B.
Gambar 6. Konfigurasi Algoritma LRU
Konfigurasi Logging Logging bertujuan agar semua aktivitas yang dilakukan oleh squid proxy dapat dicatat dan sistem administrator dapat melihat report jika terjadi kesalahan sistem pada proxy. D.
Gambar 3. Konfigurasi Memory Harddisk
Konfigurasi Algoritma Penggantian Cache Berikut merupakan konfigurasi masing-masing algoritma replacement policy. 1. Konfigurasi Algoritma LFUDA Gambar 4 menunjukkan konfigurasi penggunaan algoritma LFUDA. C.
Gambar 4. Konfigurasi Algoritma LFUDA
Gambar 7. Konfigurasi Logging
Pengujian Sistem Setelah semua aplikasi yang dibutuhkan dikonfigurasi, tahap terakhir adalah melakukan pengujian terhadap sistem yang sudah dibuat. Pengujian sistem akan dilakukan dengan cara menghubungkan perangkat user dengan router dan proxy server eksternal seperti yang terlihat pada Gambar 8. E.
Gambar 9. Persentase Cache Hit Ratio
Gambar 8. Hubungan antara user, router dan proxy server eksternal
Squid Access Log Log akan mencatat aktivitas user yang sedang menggunakan koneksi internet, termasuk IP address user yang digunakan dan IP address tujuannya. Semua permintaan HTTP user akan dialihkan ke server proxy eksternal. Aktivitas mereka akan tercatat pada log jika client telah mendapatkan objek yang diminta, dan kejadian tersebut akan dicatat sebagai TCP_HIT. Sebaliknya, jika objek yang diminta ternyata tidak ada, Squid akan mencarinya dari peer atau langsung ke server tujuan. Setelah mendapatkan objeknya, Squid akan menyimpan objek tersebut ke dalam harddisk. Selama proses download, objek ini dinamakan “object in transit” yang sementara akan menghuni ruang memori. Selama download, objek mulai dikirimkan ke client dan setelah selesai, kejadian ini tercatat dalam log sebagai TCP_MISS. F.
V. HASIL PENGUKURAN Setelah client melakukan request data maka akan ada beberapa log aktivitas yang tercatat pada sistem proxy : Cache Hit Rate Cache Hit Rate merupakan parameter yang digunakan untuk melihat keberhasilan algoritma penggantian dalam melakukan penyimpanan terhadap objek. Semakin besar angka cache hit maka semakin banyak objek yang tersimpan di cache Squid, sehingga pada saat client melakukan request objek maka proxy akan merespon permintaan tersebut secara langsung tanpa harus menghubungi website tujuan. A.
Gambar 9 memperlihatkan GDSF terlihat lebih unggul dibandingkan algoritma LFUDA dan LRU, hal ini disebabkan mayoritas penyimpanan objek dilakukan pada objek berukuran 1 KB - 1 MB, penyimpanan tersebut lebih banyak dilakukan oleh algoritma GDSF dibandingkan dengan algoritma LFUDA dan LRU. Response Time Parameter yang digunakan untuk mengetahui berapa lama waktu yang dibutuhkan client untuk melakukan request objek, baik objek yang sudah tersimpan di cache maupun yang belum dimasukkan kedalam cache sampai client mendapatkan respon atas permintaannya itu. B.
Gambar 10. Response Time
Berdasarkan hasil pengujian yang ditunjukkan pada Gambar 10, LFUDA memberikan response time yang lebih cepat dari algoritma yang lain. Karena algoritma LFUDA ini melakukan penyimpanan objek berdasarkan banyaknya permintaan tanpa menghiraukan ukuran objek inilah yang diindikasikan memberikan pengaruh terhadap response time yang diberikan. Byte Hit Ratio Byte Hit Ratio menunjukkan persentase permintaan objek yang Hit (objek yang sudah tersimpan di cache) sehingga dapat menghemat pemakaian bandwidth dari keseluruhan permintaan objek. Gambar 11 memperlihatkan persentase Bandwidth savings in Percent, artinya seberapa besar proxy dapat menghemat bandwidth. C.
Gambar 11. Byte Hit Ratio
Hasil pengujian memperlihatkan LFUDA memiliki kemampuan penyimpanan bandwidth lebih baik dibandingkan algoritma GDSF dan LRU hal ini terbukti dari persentase LFUDA yang lebih tinggi dibandingkan kedua algoritma yang lain. Hal ini terjadi dikarenakan algoritma LFUDA pada penelitian ini menyimpan objek-objek yang sering yang diminta oleh client tanpa memperhatikan ukuran objek sehingga objek dengan ukuran besar pun tetap diprioritaskan untuk disimpan oleh proxy. Hal tersebut berpengaruh terhadap penggunaan bandwidth client, yaitu ketika client meminta objek berukuran besar maka proxy akan memberikannya secara langsung dari cache lokal proxy. Size distribution Parameter ini digunakan untuk membandingkan ukuran objek yang dapat disimpan dengan baik dalam cache, berdasarkan request objek oleh client. Berdasarkan hasil pengamatan dengan menggunakan ukuran objek berkisar antara 0 - 999 Byte dan 1000 - 9999 Byte, GDSF dapat meyimpan objek berukuran 999 Byte – 9999 Byte lebih banyak dibandingkan algoritma lainnya, dan LRU memiliki kemampuan paling kecil dalam melakukan penyimpanan objek tersebut. Sedangkan ketika ukuran objek yang diminta berkisar antara 10000 - 99999 Byte, LRU dapat meyimpan objek berukuran 10000 – 99999 Byte lebih banyak dibandingkan algoritma lainnya, dan LFUDA memiliki kemampuan paling kecil dalam melakukan penyimpanan objek tersebut. Ketika client meminta objek dengan ukuran antara 100000 - 999999 Byte, GDSF dapat meyimpan objek berukuran 100000 - 999999 Byte lebih banyak dibandingkan algoritma lainnya. Pada Tabel 1 ini mulai terlihat algoritma yang mampu melakukan penyimpanan objek berukuran besar. Angka persentase pada LFUDA mulai ada peningkatan, sedangkan LRU memiliki kemampuan paling kecil dalam melakukan penyimpanan objek tersebut. D.
TABEL 1. Size Distribution untuk objek ukuran 100 KB – 999.9 KB Interval Cache Object-size Replacement 1 3 5 7 9 11 GDSF 2.8 16.5 10.1 16.1 20.1 22.9 100-999.9 KB LFUDA 5 4.69 10 20.5 16.4 9.3 LRU 6.4 18 9.13 21.9 14.7 0
Pengamatan pada objek dengan ukuran 1000000 99999999 Byte, LFUDA menunjukkan kemampuannya dalam melakukan penyimpanan objek-objek besar 1000000 - 99999999 Byte. berdasarkan pada hasil pengamatan yang dilakukan, angka persentase LFUDA lebih tinggi dibandingkan dengan algoritma lainnya, dan LRU memiliki kemampuan paling kecil dalam melakukan penyimpanan objek tersebut. Kemampuan dalam melakukan penyimpanan objek yang berukuran besar akan berpengaruh pada Byte Hit Ratio yaitu kemampuan dalam melakukan penyimpanan bandwidth. VI. KESIMPULAN Hasil penelitian membuktikan algoritma GDSF mampu meningkatkan jumlah hit ratio, terlihat dari persentase cache hit yang lebih tinggi. Hal ini dikarenakan algoritma GDSF mayoritas penyimpanan objek nya adalah objekobjek yang sering diminta oleh client yaitu objek dengan ukuran 1 KB sampai dengan 1 MB. Algoritma LFUDA memiki kemampuan response time tercepat, yaitu memberikan objek yang diminta oleh client dengan waktu yang paling cepat dibandingkan dengan dua algoritma lain. LFUDA juga memiliki kemampuan penyimpanan bandwidth yang sangat baik, terlihat dari persentase byte hit ratio yang tinggi dibandingkan dengan algoritma lainnya. Jika sebagian besar kebutuhan client adalah browsing (file berukuran kecil dalam jumlah banyak), algoritma yang cocok digunakan adalah GDSF, karena GDSF melakukan caching objek berukuran 1 KB – 1 MB lebih baik dibandingkan LFUDA dan LRU. Jika kebutuhan client sebagian besar melakukan aktivitas download (file berukuran besar dalam jumlah lebih sedikit) dan browsing (file berukuran kecil dalam jumlah banyak), algoritma LFUDA sangat baik digunakan karena algoritma ini mampu melakukan penyimpanan objek berukuran 1 KB - 100 MB lebih baik DAFTAR PUSTAKA [1] [2] [3] [4]
[5]
K. Saini, Proxy Server for Beginners 3.1. Birmingham: Packt Publishing Ltd, 2011. M. Khosrowpour, Encyclopedia of Information Science and Technology, Volume 1-5. Idea Group Inc (IGI), 2005. R. Rafiudin, Squid Koneksi Anti Mogok, Yogyakarta: Andi Offset, 2008. L. Shi, “Measurements of Web Caching and Applications,” International Conference on Machine Learning and Cybernetics 5th. 2006. The Apache Software Foundation. (2012). Administrator's Guide : HTTP Proxy Caching. [Online]. Tersedia: http://trafficserver.apache.org/docs/v2/admin/http.htm