Tutorial Optimasi Squid 2.7

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.

2r4reo3

Screenshot diatas diambil pada saat jam sibuk. Squid diakses oleh ~20 klien saya.

2drdpiu

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
About Fajar R. 297 Articles
Seseorang yang antusias terhadap dunia internet, IT, networking dan komputer. Tipikal introvert tapi suka berorganisasi dan adventuring ke tempat-tempat baru.

15 Komentar

  1. 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….

  2. 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

    • hit rate dalam pengalaman saya banyak dipengaruhi oleh refresh pattern. oleh karena itu coba deh pake refresh_pattern yang saya kasih. :)

  3. 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.

  4. 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.

  5. 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

Leave a Reply

Alamat email Anda tidak akan dipublikasikan.


*