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

22 Comments

  1. salsa

    makasih bnyk mas… sy copas refresh patternya hit nya langsung melejit. semoga nambah ganteng

    • fazar

      alhamdulillah.. semoga manfaat ya mas.

  2. welldone

    gan kalo facebook bisa di cache ga? sekarang dah pake https semua jadi dah ga bisa di cache :(

    • fazar

      nah itu.. kalo https ndak bisa. :(
      sarankan aja pelanggannya untuk pake FB non-https. hehehe..

  3. om link ebooknya ndak bisa om.. mau dong di angkat lagi.. semangat ;)

    • fazar

      linknya udah ane perbaiki, trims infonya.

  4. raianto

    kk, udah ada refres patern yg terbaru ga? mohon bantuanya kk, saya masih cupu dibidang squid kk

Leave a Reply

Your email address will not be published. Required fields are marked *