ANALISIS LOG DAN METODE CACHE REPLACEMENT UNTUK OPTIMALISASI PROXY SERVER : STUDI KASUS PT. GARUDA INDONESIA
Benjamin Anthon Balukh, ST Pesona Khayangan Jl. Margonda Raya Blok FI No.2 – Depok e-mail :
[email protected]
ABSTRAK Koneksi internet yang lambat sering terjadi pada organisasi atau perusahaan yang mem iliki proxy server. Tesis ini meneliti tentang optimalisasi performa dari proxy server. Proxy server perlu memiliki metode yang baik untuk melakukan pergantian objek pada cache. Proxy server Squid menciptakan log dari setiap transaksi data yang terjadi. Penelitian ini menganalisa perilaku dan performa proxy server di PT. Garuda Indonesia dengan mengunakan log file tersebut. Parameter utama dari penelitian ini adalah Hit Ratio (HR) dan Byte Hit Ratio (BHR). Hasil dari penelitian ini berupa usulan metode cache replacement dan topologi proxy server untuk optimalisasi proxy server pada PT. Garuda Indonesia. Kata Kunci : proxy server, squid, cache replacement, hit ratio, byte hit ratio.
PENDAHULUAN Dalam sebuah jaringan lokal yang ada dalam suatu perusahaan atau organisasi, terdapat satu atau lebih komputer yang terhubung di dalamnya. Lebih jauh, jika perusaahaan atau organisasi tersebut ingin terhubung dengan dunia luar melalui internet, maka dibutuhkan satu atau lebih Public IP untuk menghubungkan komputer yang ada pada jaringan lokal agar dapat mengakses internet secara bersamaan. Fungsi tersebut dapat dimungkinkan dengan adanya sebuah proxy server sebagai jembatan penghubung. Dalam prakteknya, akan ada beberapa user yang mengakses alamat website yang sama, maka untuk menghemat bandwidth yang digunakan, proxy server dapat menyimpan konten dari website yang sebelumnya telah dikunjungi, untuk dapat digunakan kembali apabila direquest oleh user yang lain. Istilah tersebut lebih dikenal sebagai caching . Beberapa proxy server juga dapat melakukan fitur-fitur administratif seperti pembatasan hak akses terhadap user mengenai alamat website yang boleh diakses dan tidak boleh diakses, pembatasan bandwidth , authentikasi user dan sebagainya. Proxy server dalam hal ini dapat berfungsi sebagi firewall dari sebuah jaringan lokal menuju internet. 1
TINJAUAN PUSTAKA Web Cache Proses perkembangan World-Wide Web (WWW) bermula dari konsep awal client-server yang hingga kini menjadi arsitektur terdistribusi yang sangat kompleks. Evolusi besar dilakukan seiring dengan berkembangnya tingkat akses terhadap website dari waktu ke waktu. Pengembangan skalabilitas server lakukan untuk melayani permintaan website dari server tersebut. Adapun beberapa langkah yang dapat dilakukan untuk meringankan beban server adalah dengan memanfaatkan metode cache yang terdapat di sisi client , atau dengan menambahkan infrastruktur baru berupa server yang disebut proxy server. (Cooper, 2001) Web caching sering digunakan di sebuah instansi yang memiliki model jaringan secara hirarki. Cache pada tingkat paling dasar terdapat pada komputer klien, yang dapat langsung digunakan namun dengan alokasi yang sangat minim. Pada tingkat yang lebih tinggi, cache terdapat di sebuah proxy server. Fungsinya adalah melakukan caching untuk kebutuhan intranet suatu organisasi atau instansi. Di tingkat yang lebih tinggi terdapat proxy regional, biasanya dimiliki oleh penyedia jasa internet, atau biasa disebut Internet Service Provider (ISP). (Benevenuto, 2005) Ada beberapa protokol yang masih sangat banyak digunakan dalam proses web caching hingga saat ini, diantaranya adalah Hypertext Transfer Protocol (HTTP) dan Internet Cache Protocol (ICP).
HTTP Hypertext Transfer Protocol (HTTP) adalah application -level protocol untuk distribusi dan kolaborasi multimedia suatu sistem informasi. HTTP telah digunakan oleh World-Wide Web sejak tahun 1990, versi pertama HTTP adalah 0.9, kemudian berkembang menjadi versi 1.0, dengan penambahan pada skema request dan response terhadap web. Namun versi 1.0 tersebut masih belum mendukung hirarkial proxy dan caching . Versi yang selanjutnya adalah 1.1 yang mendukung komunikasi user PC dan proxy server dengan internet protocol lainnya, seperti SMTP, FTP dan lainnya. ( Field ing, 1999) HTTP memiliki kode status yang mendefinisikan fungsi yang berbeda, dan kode status ini berhubungan juga dengan konten -konten mana saja yang dapat di cache atau tidak. ( Field ing, 1999) Respon yang diterima dengan kode status 200, 203, 206, 300, 301 dan 410 dapat disimpan dalam cache dan digunakan apabila ada request selanjutnya, kecuali jika sebuah control cache melakukan larangan terhadap konten tersebut. (Fielding, 1999)
Respon yang diterima dengan kode status lainnya (misalnya kode status 302, dan 307) tidak dapat dikembalikan dalam m erespon request tersebut. Kecuali sebuah control cache memperbolehkan operasi tersebut. (Fielding, 1999) 2
100 101 200 201 202 203 204 205 206 300 301 302
Continue Switching Protocols OK Created Accepted Non-Authoritative Information No Content Reset Content Partial Content Multiple Choices Moved Permanently Found
404 405 406 407 408 409 410 411 412 413 414 415
303 304 305 307 400 401 402 403
See Other Not Modified Use Proxy Temporary Redirect Bad Request Unauthorized Payment Required Forbidden
416 417 500 501 502 503 504 505
Not Found Method Not Allowed Not Acceptable Proxy Authentication Required Request Time-out Conflict Gone Length Required Precondition Failed Request Entity Too Large Request-URI Too Large Unsupported Media Type Requested Range Not Satisfiable Expectation Failed Internal Server Error Not Implemented Bad Gateway Service Unavailable Gateway Time-out HTTP Version not supported
Gambar 1 : Kode Status HTTP (Sumber : Fielding, 1999) ICP Internet Cache Protocol (ICP) adalah format pesan yang digunakan untuk komunikasi antar web cache. Meskipun web cache menggunakan HTTP untuk mentransfer data, caching dapat lebih effisien dengan menggunakan protokol komunikasi yang lebih praktis. ICP merupakan protokol yang digunakan untuk menghubungkan objek web dengan cache. (Wessels, 1997) ICP membutuhkan kecepatan dalam komunikasinya, maka dibutuhkan protokol yang memiliki fungsi yang praktis juga, karena ICP membutuhkan respon yang cepat dalam berkomunikasi. Dalam hal ini transport protocol yang lebih unggul dalam mendukung protokol ICP adalah UDP, namun tidak menutu kemungkinan jika ICP diimplementasikan dengan protokol TCP. (Wessels, 1997).
3
Gambar 2: Format ICP (Sumber : Wessels & Claffy, 1997) Cache Replacement Proses cache replacement dilakukan apabila kapasitas cache yang ada sudah penuh, dan data-data cache lama yang ada di dalamnya harus dibuang untuk memberi tempat bagi data-data baru yang masuk. Proses pergantian data dalam cache memerlukan algoritma penggantian yang baik untuk memaksimalkan kinerja dari web cache dan meningkatkan hit ratio . (Wessels, 2001). A. Least Recently Used (LRU) Metode penghapusan objek berdasarkan waktu kapan objek tersebut terakhir diakses. Semakin lama waktunya, kemungkinan terhapus juga akan semakin besar. (Wessels, 2001)
Gambar 3 : LRU Replacement Cache (Sumber : http://bebas.vlsm.org 2009) 4
Untuk mengimplementasikan algoritma LRU, digunakan 2 model yaitu : 1. Counter, setiap entry table page diasosiasikan dengan sebuah “time-of-use” dan sebuah clock logika (counter) ditambahkan ke CPU. Clock ini dinaikan untuk setiap acuan ke memori. Jika sebuah acuan ke suatu page dibuat, isi clock register dicopy ke time-of-use pada table page untuk page tersebut. 2. Stack, stack dari nomor page diatur. Jika sebuah page digunakan sebagai acuan, maka page dihapus dari stack dan meletakan pada top of stack, dengan cara ini stack selalu digunakan page dan bagian bawah untuk page LRU. B. First In First Out (FIFO) Penghapusan cache yang merunut metode berdasarkan waktu masuk ke dalam cache_dir, yaitu object yang paling awal masuk adalah objek yang akan dihapus terlebih dahulu. (Wessels, 2001) C. Least Frequently Used (LFU) LFU hampir sama dengan LRU, tetapi menggunakan satuan waktu sejak terakhir kali diakses. Parameter yang digunakan adalah jumlah akses objek dengan jumlah akses yang paling kecil, dan menyimpan objek de jumlah akses terbesar. (Wessels, 2001) D. Size Mengganti objek terbesar di dalam cache, tetapi juga melihat dari waktu lamanya objek di dalam cache, objek yang sudah lama juga dibuang. Cache hanya berisi objek-objek yang berukuran kecil. (Wessels, 2001)
Web Cache Analysis Ratio Dalam melakukan analisis terhadap web cache, terdapat beberapa m etode yang digunakan sebagai parameter perhitungan data. Hit Ratio (HR) dan Byte Hit Ratio (BHR) merupakan parameter perhitungan yang sering digunakan para peneliti untuk menganalisa web cache.
a. Hit Ratio Hit Ratio (HR) adalah persentase dari objek yang diambil dari cache dibandingkan dengan jumlah request yang dikirim oleh user kepada cache. Dimana dapat diukur dengan rumus persamaan berikut. N merupakan jumlah request yang dilakukan oleh user terhadap cache. Nilai 1 dimana 1 < i < N, adalah sebuah o bjek, dan qi merupakan sebuah variabel yang dapat diasumsikan berupa nilai {0,1}. Yaitu qi = 1 apabila objek didapat dari cache, atau qi = 0 apabila tidak (Shi, 2006) Persamaan 1:
5
b. Byte Hit Ratio Byte Hit Ratio (BHR) adalah persentase dari jumlah byte objek yang direquest dari cache, dibandingkan dengan jumlah byte objek yang terdapat da cache. Dimana dapat diukur dengan rumus pada persamaan 2 berikut. N merupakan jumlah request yang dilakukan oleh user terhadap cache. Nilai 1 < i < N, adalah sebuah objek. Dan qi merupakan sebuah variabel yang dapat diasumsikan berupa nilai {0,1}. Yaitu qi = 1 apabila objek dimuat dari cache, atau qi = 0 apabila tidak. Sedangkan mi merupakan jumlah besaran o pada request ke-i. (Shi, 2006)
Persamaan 2:
Squid Log Log adalah sumber informasi utama dalam setiap operasi proxy Squid. Dengan kata lain, cache yang menyimpan segala aktifitas yang dilakukan oleh squid. Itu termasuk alamat website yang direquest oleh oleh client, objek yang disimpan dalam cache, dan berbagai macam peringatan dan error. Ketika squid tidak berjalan sebagaimana mestinya, log dari squid inilah yang harus diperiksa terlebih dahulu. (Wessels, 2004) Proxy Squid memiliki 2 log primer yang digunakan dalam memonitor segala aktifitas squid, yaitu access.log dan cache.log (Wessels, 2004)
METODE PENELITIAN Dalam penelitian yang dilakukan penulis mengumpulkan data log file dari ke -5 proxy server Squid yang ada di PT. Garuda Indonesia, yang kemudian dikembangkan ke dalam format basis data menggunakan SQL. Setelah itu, penulis memproses data menggunakan SQL Query untuk mendapatkan hasil analisa mengenai performa proxy tersebut dan menjelaskan mekanisme proses cache replacement pada masing-masing server, juga membandingkan hasil analisa dari proxy server yang ada. Hasil analisa terhadap beberapa perimeter (timestamp, responsetime, transfer size,content type, dsb) yang dilakukan, dapat dijadikan usulan untuk perbaikan performa dan itas dari proxy server yang ada di PT. Garuda Indonesia.
6
Gambar 4 : Kerangka Penelitian
HASIL DAN PEMBAHASAN PT. Garuda Indonesia saat ini memiliki 5 buah proxy server Squid. Dalam riset ini diberikan nama alias untuk masing-masing proxy, yaitu proxy23, proxy24, proxy25, proxy26 dan proxy27. Analisa yang dilakukan pada masing-masing proxy server, hasilnya akan dikorelasikan dengan hasil analisa dari proxy server lainnya. Hasil penelitian dapat dilihat pada tabel – tabel berikut : Server Proxy 23
Cache Size 15 GB
Proxy 24 Proxy 25 Proxy 26 Proxy 27
8 GB 10 GB 18 GB 6 GB
Cache Replacement LRU LFUDA LRU LFUDA LRU
Tabel 1 : Proxy Server PT. Garuda Indonesia Server Proxy 23 Proxy 24 Proxy 25 Proxy 26 Proxy 27
Total Request 1671901 1915276 1381009 1382086 787414
Tabel 2 : Total Request 7
Server Proxy 23 Proxy 24
Total Size (Byte) 11819050037 14655109182
Proxy 25 Proxy 26 Proxy 27
8454926959 12898988273 7704113815
Tabel 3 : Total Object Size Server Proxy 23 Proxy 24 Proxy 25 Proxy 26 Proxy 27
Cacheable 1209294 1444884 1042422 1000808 493451
Uncacheable 462607 470392 338587 381278 293963
Table 4 : Cacheable dan Uncacheable Object Dari tabel 4 dapat terlihat bahwa rata-rata lebih dari 50% jumlah objek yang direquest oleh klien merupakan objek yang dapat dicache oleh proxy server Squid yang ada di PT. Garuda Indonesia, alokasi dan konfigurasi cache yang optimal akan dapat memberikan peningkatan yang signifikan terhadap waktu pemakai untuk akses internet. Server Proxy 23 Proxy 24 Proxy 25 Proxy 26 Proxy 27
Hit Ratio 56.83% 49.50% 34.13% 60.37% 39.09%
Table 5 : Hit Ratio Pada tabel 5 terlihat bahwa Proxy26 memiliki Hit Ratio sebesar 60.37 % dan merupakan Hit Ratio yang terbesar dari antara proxy server yang ada, proxy server tersebut mengalokasikan ruang cache yang paling besar, yaitu sebesar 18 GB. Untuk meningkatkan Hit Ratio dari proxy yang lain, dapat diberikan alokasi ruang cache yang lebih besar. Dilihat dari angka Hit Ratio tersebut, seluruh proxy memiliki kondisi normal dalam menggunakan cache yang dimiliki, angka Hit Ratio yang dimiliki oleh seluruh proxy server yang ada di PT. Garuda Indonesia berada diatas 30 %.
8
Server Proxy 23 Proxy 24 Proxy 25 Proxy 26 Proxy 27
Byte Hit Ratio 56.19% 49.13% 30.95% 58.41% 35.25%
Tabe l 6 : Byte Hit Ratio Dari data tabel 6 terlihat bahwa Proxy26 memiliki Byte Hit Ratio terbesar, yaitu 58.41%. Hal ini menguatkan asumsi, bahwa proses penggantian objek pada cache proxy server tersebut bekerja lebih optimal jika dibandingkan dengan proxy server lainnya. Seluruh proxy server berjalan dalam keadaan normal karena selisih antara Hit Ratio dan Byte Hit Ratio tidak lebih dari 10%. Server Proxy 23 Proxy 24 Proxy 25 Proxy 26 Proxy 27
PKC 40.19% 38.96% 27.42% 46.26% 30.71%
Table 7 : Prosentase Kapasitas Cache Dari hasil analisa yang telah dilakukan pada masing-masing proxy Squid terlihat bahwa proxy26 memiliki prosentase terbesar yaitu 42.6%. Sejalan dengan prosentase Hit Ratio dimana proxy 26 merupakan proxy server yang memiliki Hit Ratio tertinggi yaitu 60.37%. Hal ini menandakan bahwa objek-objek di HIT dari cache, merupakan objek yang sering direquest berulang kali oleh banyak client di jaringan tersebut, dan alokasi cache yang relatif besar juga mengakibatkan semakin banyak objek yang dapat disimpan di dalam cache. Server Proxy 23 Proxy 24 Proxy 25 Proxy 26 Proxy 27
Prosentase One Timer (%) 5.57% 4.80% 5.03% 5.06% 9.56%
Table 8 : One Timer Penulis melihat bahwa kinerja cache dari proxy server bekerja optimal jika dikorelasikan dengan data objek yang diakses hanya satu kali. Karena apabila prosentasenya semakin besar, maka akan mempengaruhi Hit Ratio dan Byte Hit Ratio . Dimana prosentase Hit Ratio dan Byte Hit Ratio akan semakin kecil karena cache diisi oleh objek-objek yang hanya diakses satu kali saja dan pergantian objek juga akan lebih 9
sering terjadi, sehingga kemungkinan terjadinya HIT terhadap cache akan semakin sedikit. Dari tabel 8 terlihat bahwa proxy27 memiliki angka prosentase one timer yang paling tinggi, penulis melihat bahawa hal ini dapat disebabkan karena angka total request dari user menuju proxy27 adalah yang paling kecil dibandingkan dengan proxy lainnya. Sehingga kemungkinan terdapatnya objek 1X request adalah yang paling besar. URL http://intra.garuda-indonesia.com
Proxy23 39050
http://www.facebook.com https://m02.garuda-indonesia.com http://www.detik.com http://www.meebo.com
Proxy24 Proxy25 17262 31543
23119 33787 19988 7973
17769 14482 9371 5165
12416 21147 9987 8148
Proxy26 Proxy27 27233 29532 7861 21007 11903 7697
9077 18235 13018 3180
Table 9 : Top Site Request URL http://intra.garudaindonesia.com http://www.facebook.com https://m02.garudaindonesia.com http://www.detik.com http://www.meebo.com
Proxy23
Proxy24
355119262
190686737
68360746
Proxy25
Proxy26
Proxy27
64203478
116923540
118628273
56069692
1491360
222983024
56069692
53307076
107053775
79766405
482728420
27083874
6949158
11939697
38931516
21188191
8154999
11750175
7906349
131554732
7192325
1212273
Table 10 : Top Site Object Size Dari kedua tabel diatas, terlihat bahwa alamat website “http://intra.garudaindonesia.com” memiliki jumlah request yang relatif besar, dari seluruh proxy server yang ada, namun ukuran objek terbesar di dalam cahe proxy adalah objek dari alamat website “https://m02.garuda-indonesia.com”, cache terbesarnya terdapat pada proxy server 26. Penulis melihat adanya pemborosan cache dari 5 proxy server yang ada, dimana terdapat objek yang sama tersimpan pada masing-masing proxy server. Server Proxy 23 Proxy 24 Proxy 25 Proxy 26 Proxy 27
Response Time (ms) 6591.06 6868.68 7196.06 6131.34 8077.01
Table 11 : Response Time Dari data tabel, terlihat bahwa proxy 26 memiliki rata – rata response time yang paling baik dari proxy server lainnya, angka Hit Ratio dan Byte Hit Ratio yang tinggi menunjukan bahwa cache replacement dalam proxy tersebut bekerja dengan effisien. 10
Objek Type Proxy 23 Proxy 24 Proxy 25 Proxy 26 Proxy 27
Text Image Audio Application Binary 178967 310604 9053 101596 9055 201263 378522 12038 124962 11480 167919 162312 14720 48037 14668 185682 299063 12270 106515 11129 66298 97465 26579 42615 26512
Table 12 : Object Type Berdasarkan tabel 12, terlihat bahwa tipe objek gambar dan teks adalah yang paling banyak direquest oleh klien. Hit Ratio
Proxy23-LRU
Proxy24-LFUDA
Proxy25-LRU
Proxy26-LFUDA
Proxy27-LRU
100000 request
48.17%
49.00%
33.38%
69.37%
36.47%
200000 request
50.08%
51.85%
29.56%
66.56%
35.28%
300000 request
50.85%
52.38%
27.71%
63.33%
40.84%
400000 request
52.31%
52.40%
26.76%
62.31%
40.11%
500000 request
53.01%
52.03%
26.78%
61.77%
39.01%
600000 request
53.52%
51.33%
26.62%
61.09%
37.65%
700000 request
52.69%
50.07%
26.37%
60.73%
38.39%
Table 13 : Hit Ratio per Request
Gambar 5 : Hit Ratio dan Cache Replacement Dari data dan grafik di atas, terlihat bahwa metode LFUDA memiliki keunggulan terhadap metode LRU. Jika dibandingkan antara proxy26 LFUDA dengan proxy23 LRU, keduanya memiliki selisih hit ratio lebih dari 10%. Alokasi space yang disediakan untuk cache juga dapat mempengaruhi angka Hit Ratio , Hit ratio terbesar 11
dimiliki oleh proxy26 sebesar 60.37% dengan alokasi space untuk cache sebesar 18 GB dari keseluruhan request terhadap cache proxy. Perbandingan Hit Ratio dan Cache Replacement menunjukan bahwa metode LFUDA lebih tinggi dibandingkan LRU dengan hit ratio tertinggi rata -rata 63.59%.
BHR %
Proxy23-LRU
Proxy24-LFUDA
Proxy25-LRU
Proxy26-LFUDA
Proxy27-LRU
100000 request
62.88%
52.65%
33.91%
66.74%
34.05%
200000 request
57.69%
52.57%
31.61%
66.91%
28.90%
300000 request
56.02%
52.71%
30.40%
62.84%
28.65%
400000 request
56.84%
51.71%
29.40%
63.15%
35.87%
500000 request
57.12%
51.44%
28.60%
61.42%
34.76%
600000 request
56.90%
51.07%
28.42%
60.67%
34.64%
700000 request
56.40%
50.13%
28.40%
60.08%
36.06%
Table 14 : Byte Hit Ratio per Request
Gambar 6 : Byte Hit Ratio dan Cache Replacement Byte Hit Ratio tertinggi terdapat di proxy26 sebesar 58.41 % dari keseluruhan request terhadap cache proxy, hal ini menguatkan bahwa proses pergantian objek dalam cachenya bekerja paling optimal dibandingkan dengan proxy server lainnya. Perbandingan Byte Hit Ratio dan Cache Replacement menunjukan bahwa metode LFUDA lebih tinggi dibandingkan LRU dengan size ratio tertinggi rata -rata 63.12%.
12
KESIMPULAN DAN SARAN Jenis topologi yang paling tepat untuk diimplementasikan adalah proxy sibling, untuk menghilangkan redundancy cache objek yang terdapat pada masing–masing proxy. Metode cache replacement yang paling optimal untuk diimplementasikan pada masing-masing proxy server yang ada di PT. Garuda Indonesia saat ini adalah metode cache replacement LFUDA, melalui serangkaian penelitian yang telah dilakukan terbukti memiliki angka Hit Ratio dan Byte Hit Ratio yang paling tinggi diantara proxy server yang ada.
13
DAFTAR PUSTAKA Hunt. Craig.2002. TCP/IP Network Administration, 3 rd Edition. O’Reilly.
Sportack, Mark A. 2002. IP Addressing Fundamentals . Cisco Press. Cooper, Ian. 2001. Internet Web Replication and Caching Taxonomy . RFC-3040 Benevenuto, Fabricio & Partners. 2005 Web Cache Replacement Policies : Properties, Limitations and Implications . IEEE Fielding, R. 1999. Hypertext Transfer Protocol – HTTP/1.1 . RFC-2616 Wessels & Claffy. 1997. Internet Cache Protocol version 2 . RFC-2186 Wesels, Duanne. 2001. Web Caching . O’Reilly. Shi, Lei. 2006. Measurements of Web Caching and Applications . International Conference on Machine Learning and Cybernetics 5th. Tim Networks ITS. 2007 . Proxy Server. Institut Tekhnologi Sepuluh November. Wessels, Duanne. 2004. Squid : The definitive Guide. O’Reilly
14