Sudah dua hari ini, saya beserta teman saya Adry (link ke blognya ada di blogroll samping) melakukan tweaking konfigurasi web-cache dalam hal ini squid versi 2.7. Ibarat sekeping uang koin dengan 2 wajah, ada beberapa hal yang dianggap “merugikan” dan “menguntungkan” dalam penerapan squid.
Sisi menguntungkan dengan konfigurasi squid yang agresif adalah penghematan alokasi bandwidth yang sangat signifikan, antara 30% sampai dengan 50%. Namun, dalam hal ini banyak konten web yang diakses oleh client atau workstation menjadi statik. Inilah yang menjadi “kerugian”-nya!
Beberapa website yang memiliki konten dinamik, sebut saja detik.com atau web yang menyediakan berita secara realtime terkadang kontennya ikut di cache. Sehingga client yang mengakses web tersebut akan mendapati berita “basi”.
Setelah putar otak tujuh keliling dan mencoba berbagai macam teknik seperti menentukan web mana saja yang tidak di cache dan menentukan IP address yang “dianggap” tidak mengkonsumsi banyak bandwidth. Namun, cara yang demikian ternyata tidak efektif.
Terakhir diskusi kami, jatuh pada tweaking pada refresh_pattern. Dan tidak disangka, cara tersebut berhasil! Kebanyakan orang diluar sana – yang mungkin baru mengaplikasikan squid – menggunakan konfigurasi dari sumber yang tidak jelas, akan menemukan banyak permasalahan dengan squidnya. Dari kesimpulan yang kami buat ada banyak hal yang harus diperhatikan dalam menentukan konfigurasi squid. Antara lain kebiasaan browsing client, yang akan menentukan refresh_pattern yang tepat untuk squid.
Screenshot diatas diambil pada saat jam sibuk. Squid diakses oleh ~20 klien saya.
Screenshot diatas juga diambil pada saat jam sibuk oleh Adry. Squid diakses oleh ~60 klien.
Terlihat HIT rate yang sangat signifikan! – dan penghematan bandwidth yang sangat LUMAYAN! :)
Saya juga menyempatkan untuk menulis ebook kecil tentang refresh_pattern, dan dapat di download disini.
Berikut adalah refresh pattern yang saya gunakan. refresh_pattern ini diambil dari Forum Mikrotik Indonesia, beberapa web, serta beberapa penyesuaian.
# refresh patterns refresh_pattern -i \.(cab|3gp|swf|mp4|mp3|mkv|rm|rmvb|avi|mpeg|mpg)$ 43200 95% 262800 ignore-reload ignore-no-cache ignore-private override-expire # web contents refresh_pattern -i \.(class|css|js|xml)$ 1440 50% 10080 ignore-no-cache ignore-private reload-into-ims override-lastmod refresh_pattern -i \.index\.(html|htm|php)$ 0 50% 1 refresh_pattern -i \.(cgi|asp|shtml|pl|html|htm)$ 0 20% 1 # web video refresh_pattern -i (get_video\?|videoplayback\?id|videoplayback.*id) 10080 500% 43200 override-expire ignore-no-cache ignore-private ignore-reload # images refresh_pattern -i \.(jp(e?g|e|2)|gif|png|tiff?|bmp|ico|flv)(\?|$) 10080 300% 43200 override-expire override-lastmod reload-into-ims ignore-reload # compressed files refresh_pattern -i \.(exe|zip|rar|tgz|msi|sis|xpi|bin|jar)(\?|$) 10080 3000% 43200 reload-into-ims ignore-no-cache # facebook refresh_pattern ((facebook.com)|(85.131.151.39)).*\.(jpg|png|gif) 43800 200% 10080 ignore-reload override-expire ignore-no-cache ignore-private reload-into-ims refresh_pattern -i ^http:\/\/*\.[a-z]\.fbcdn.net.*\.(jpg|gif|png|swf|mp3|flv|mp4) 43800 200% 10080 ignore-reload override-expire ignore-no-cache ignore-private reload-into-ims refresh_pattern -i static\.[a-z]\.fbcdn\.net*\.(jpg|gif|png) 43800 200% 10080 ignore-reload override-expire ignore-no-cache ignore-private reload-into-ims refresh_pattern -i ^http:\/\/profile\.[a-z]\.fbcdn.net*\.(jpg|gif|png) 43800 200% 10080 ignore-reload override-expire ignore-no-cache ignore-private reload-into-ims refresh_pattern -i ^http:\/\/*\.akamaihd\.(net|com).*\.(jpg|gif|png) 43800 200% 10080 ignore-reload override-expire ignore-no-cache ignore-private reload-into-ims # banner IIX refresh_pattern ^http:\/\/openx.*\.(jp(e?g|e|2)|gif|pn[pg]|swf|ico|css|tiff?) 129600 99999% 129600 reload-into-ims ignore-reload override-expire ignore-no-cache refresh_pattern ^http:\/\/ads(1|2|3).kompas.com.*\/ 43200 99999% 129600 reload-into-ims ignore-reload override-expire ignore-no-cache refresh_pattern ^http:\/\/img.ads.kompas.com.*\/ 43200 99999% 129600 reload-into-ims ignore-reload override-expire ignore-no-cache refresh_pattern .kompasimages.com.*\.(jpg|gif|png|swf) 43200 99999% 129600 reload-into-ims ignore-reload override-expire ignore-no-cache refresh_pattern ^http:\/\/openx.kompas.com.*\/ 43200 99999% 129600 reload-into-ims ignore-reload override-expire ignore-no-cache refresh_pattern kaskus.\us.*\.(jp(e?g|e|2)|gif|png|swf) 43200 99999% 129600 reload-into-ims ignore-reload override-expire ignore-no-cache refresh_pattern -i cdn-[a-z]\.kaskus.\us.*\.(jp(e?g|e|2)|gif|png) 43200 99999% 129600 reload-into-ims ignore-reload override-expire ignore-no-cache refresh_pattern ^http:\/\/img.kaskus.us.*\.(jpg|gif|png|swf) 43200 99999% 129600 reload-into-ims ignore-reload override-expire ignore-no-cache refresh_pattern ^.*(utm\.gif|ads\?|rmxads\.com|ad\.z5x\.net|bh\.contextweb\.com|bstats\.adbrite\.com|a1\.interclick\.com|ad\.trafficmp\.com|ads\.cubics\.com|ad\.xtendmedia\.com|\.googlesyndication\.com|advertising\.com|yieldmanager|game-advertising\.com|pixel\.quantserve\.com|adperium\.com|doubleclick\.net|adserving\.cpxinteractive\.com|syndication\.com|media.fastclick.net).* 43200 20% 43200 ignore-no-cache ignore-private override-expire ignore-reload # ytimg, google, etc refresh_pattern ^.*safebrowsing.*google 43200 999999% 43200 override-expire ignore-reload ignore-no-cache ignore-private refresh_pattern ^http://((cbk|mt|khm|mlt)[0-9]?)\.google\.co(m|\.id) 43200 999999% 43200 override-expire ignore-reload ignore-private refresh_pattern ytimg\.com.*\.jpg 43200 999999% 43200 override-expire ignore-reload refresh_pattern ^http:\/\/www.onemanga.com.*\/ 43200 999999% 43200 reload-into-ims ignore-no-cache ignore-reload override-expire refresh_pattern ^http://v\.okezone\.com/get_video\/([a-zA-Z0-9]) 43200 999999% 43200 override-expire ignore-reload ignore-no-cache ignore-private override-lastmod # facebook games refresh_pattern ^http:\/\/apps.facebook.com.*\/ 10080 999999% 43200 ignore-reload override-expire ignore-no-cache refresh_pattern -i \.zynga.com.*\/ 10080 999999% 43200 ignore-reload override-expire ignore-no-cache refresh_pattern -i \.farmville.com.*\/ 10080 999999% 43200 ignore-reload override-expire ignore-no-cache refresh_pattern -i \.ninjasaga.com.*\/ 10080 999999% 43200 ignore-reload override-expire ignore-no-cache refresh_pattern -i \.mafiawars.com.*\/ 10080 999999% 43200 ignore-reload override-expire ignore-no-cache refresh_pattern -i \.crowdstar.com.*\/ 10080 999999% 43200 ignore-reload override-expire ignore-no-cache # IIX download refresh_pattern -i ^http:\/\/\.www[0-9][0-9]\.indowebster\.com\/(.*)(mp3|rar|zip|flv|wmv|3gp|mp(4|3)|exe|msi|zip) 43200 99999% 129600 reload-into-ims ignore-reload override-expire ignore-no-cache # other refresh_pattern ^ftp: 480 60% 22160 refresh_pattern . 180 60% 4320
Ijin Ngetes ya brow
Mas fazar kenapa link full game online sekarang tidak ada ya… Saya mengikuti perkembangan disini kenapa ada beberapa link hilang… Kalo boleh minta refresh_patern buat cache semua game online dunk om fazar… E-mail saya ya di verbatim777_at_yahoo.co.id
terimakasih sebelumnya buat informasinya….
Kalo yang ini refresh_pattern nya masih berguna ga ya….? Bisa ngecash apa saja?
Klo boleh sekalian setting mikrotiknya dunk gan di paparin disini juga…
Terimakasih
pattern yg ini nggak up to date. ntar kalo sempet ane bikin menyesuaikan dengan kondisi terkini. untuk pattern ini cache object umum aja, facebook, dll.
setting mikrotik bisa dilihat disini : https://fazar.net//external-proxy-server-mikrotik/
semoga bermanfaat.
mau minta tolong Om Fazar,
saya ada masalah dengan automatic update browser google chrome, bner2 bikin repot… (lag polll)
link dari access.log selalu miss karna gak ke cache squid
http://o-o—preferred—pttelkom-cgk3—v12—cache.c.pack.google.com/edgedl/chrome/win/20.0.1132.57_chrome_installer.exe?
mohon bantuan supaya link tersebut bisa dicache sama squid.
atas bantuannya, sebelumnya saya mengucapkan terima kasih.
dynamic content ini mas.. kudu pake rewrite dan storeurl. ntar deh ane kasih info kalo ada solusinya.
dinamic content… hmmm :(, mudah2an ada solusi tanpa patch squid….
terima kasih replynya om … :)
makasih om ilmunya
wah hit rationya tinggi
wah contekan squid.conf nya boleh di share kah? untuk melihat nya
hit rate dalam pengalaman saya banyak dipengaruhi oleh refresh pattern. oleh karena itu coba deh pake refresh_pattern yang saya kasih. :)
numpang tanya kang, bisa dijaslan secara detil ga fungsi dan kegunaan dari angka2 dan baris ini. maklum cuma rajin copas doank.
>>43200 99999% 129600 reload-into-ims ignore-reload override-expire ignore-no-cache
>>480 60% 22160
begini, angka-angka tsb adalah opsi refresh_pattern terdiri dari : t-min %percentage t-max
t-min : menentukan usia minimum object didalam cache yang dianggap fresh saat kita menggunakan “override-expire” (satuannya menit).
%percentage : lm-factor (penjelasan ada dibawah).
t-max : menentukan usia maksimum object didalam cache yang dianggap fresh. jika usia melewati angka ini, maka object dianggap stale (busuk) dan akan dihapus oleh squid.
contoh :
refresh_pattern -i ^http://contoh.com/test.jpg$ 0 60% 1440
Klien merequest gambar http://contoh.com/test.jpg 1 jam yang lalu.
Gambar tersebut dibuat atau dimodifikasi oleh server 6 jam yang lalu, namun tidak terdapat informasi EXPIRE pada headernya. Maka :
– Usia object adalah 6 – 1 = 5 Jam
– Response age adalah 1 jam (selisih object berada didalam cache dikurangi waktu pembuatan 5 – 6 = -1)
– lm-factor 1/5 = 0,2 (20%)
Perhitungan berikutnya :
– Response age 60 menit, berada dibawah t-max 1440 menit, tidak dapat menjadi acuan karena nilainya terlalu jauh.
– lm-factor 20%, berada dibawah 60%, kesimpulannya object adalah FRESH
Untuk menghitung kapan object akan expire : Usia object 5 jam dan persentasi 60%, maka (5×60)/100 = 3 Jam dari request terakhir. Sehingga object dinyatakan expire 2 jam yang akan datang. STALE jika melewati 1440 menit.
skg cmn mentok di 35% HIT nya, abis ganti baru dr cache+software+hardwarenya…
tp gpp, ntr jg penuh lg ke peak 85% lg :))
salam buat mas adrian,
untuk os-nya saya pakai ubuntu hardy – dulu sih pernah nyoba di win***, tapi menurut hemat saya cachenya jadi kurang agresif. untuk config, ntar menyusul, saya masih melakukan ujicoba kustomasi config disana-sini menyesuaikan dengan perkembangan web sekarang.
mas ikut nanya mas
Squidnya berjalan di OS apa mas di basenya atau di win***
confignya gimana tuh bisa ampe 50% hitnya sip lah mas
klo bisa bagi2 dong confignya.
hehehe
oke deh sip mas maju terusss