Mengenal fungsi refresh_pattern dan tweaksnya

Sempat bingung juga liat configurasi refresh_pattern di squid punya teman pada ditulis banyak-banyak gitu. yari-nyari di google eh ketemu Artikel yang cukup bagus untuk mengenal refresh_pattern di squid serta seputar proxy cache. berikut kutipannya;




Barangkali ada rekan2 yang masih bingung bagaimana membuat proxy server yang responsif sesuai keperluan. berikut rangkuman hasil eksperimen dari berbagai sumber :

1. Install dns cache pada mesin server yang di install proxy, dan jadikan primary dns server baik untuk client dan proxy. Hal ini meniminimalkan respon time query dns ke luar.

2. Gunakan dns ISP sebagai dns forwarder , karena hanya dns isp yang mempunyai hope paling pendek dan meminimilakn respon time query dns

3. perbesar ukuran fqdncache Anda dan ipcache. Lebih besar lebih baik. Set positive_dns_ttl minimal 1 jam dan negative_dns_ttl paling maximal 1 menit

4. Hambatan terbesar cache adalah disk I/O, jadi seimbangkan ukuran max_cache_size dengan rpm hardisk dan jumlah memory ram.

5. Split cache_sir kebeberapa drive fisik.

6. JANGAN menempatkan dua drive cache_sir pada kontroler IDE yang sama, tapi Anda bisa menaruh empat berkecepatan tinggi atau enam kecepatan biasa-SCSI drive pada SCSI controller tunggal. Jangan mencampur Ultra-Wide SCSI dengan non-SCSI Ultra-Wide pada kabel yang sama.

7. Pisahkan log pada drive non-cache, dan lebih baik pada kabel yang berbeda atau controller yang berbeda

8. Pastikan drive yang di gunakan mempunyai rpm yang sesuai. Beberapa server memiliki kombinasi yang tidak kompatibel. Sungguh tragis melihat server seharga 30 juta perak dengan Ultra Wide SCSI yang lebih kecil disk I / O throughput dari Pentium 3 dengan IDE drive 5400-rpm. Anda mungkin harus hati2 sebelum membeli.

9. Kesalahan fatal dalam menggunakan rumusan cache_dir adalah menggunakan keseluruhan partisi fisik cache_dir, gunakan maksimal 60% dari partisi fisik cache_dir, misal partisi fisik cache_dir 10Gb, gunakan cache_dir aufs /cache 6000 L1 L2

10. Dengan L2 selalu default 256, maka L1 bisa di cari rumus singkat cache_dir/500, misal cache_dir 10000 maka nilai L1 adalah 20, jadi confignya adalah, cache_dir aufs /cache 10000 20 256

11. Aturan sederhana untuk memori.

Bagilah ukuran cache disk sebesar 13 Kbytes, dan kalikan dengan 130 byte. Tambah ukuran cache_mem, dan tambahkan sekitar 2,5 Mbytes lebih untuk file executable/binary, library, dan overhead lainnya. Sebagai contoh: Kita memiliki drive 10-GByte, dan cache_mem 8 Mbytes.

10 Gbytes/13 Kbytes = 769.230
769.230 x 130 byte = 99.999.900 byte (atau 97.656 Kbytes)
97.656 Kbytes + 2,5 Mbytes + 8 Mbytes = 10.849.656 Kbytes atau sekitar 108 Mbytes

Contoh kebutuhan server 108 Mbytes tersedia untuk Squid untuk mendukung 10 GBytes dari cache_dir.

Hati2 jika swap mulai terpakai, proxy akan buruk ketika mulai swap. Ingat untuk menyisakan memori untuk hal lain pada mesin (DNS, cron, kernel, aplikasi web server, dll,

12. Gunakan coss file system jika req > 200 req/s

12. Tentang refresh_pattern
refresh_pattern menentukan pola lamanya objek. refresh_pattern adalah keterangan kapan waktu 'tersegarkan' utk menguji validitas obyek. Jika obyek teruji masih valid, proxy akan mengambil dari lokal cache swap-nya, jika obyek sudah tidak valid ya jelas proxy akan mengambil obyek dari server asal. (tidak semua web itu memiliki info ini , tergantung si web programernya). penggunaan refresh_patern bisa di ikuti regex tertentu, misal url,extension,domain dll.
Hati2 bermain refresh_pattern, alih2 ingin membuat HIT yang besar, namun respon timenya akan lambat hanya gara2 setiap objec harus di parsing oleh regex. makanya tidak heran ketika menggunakan proxy internal mikrotik lebih responsif ketika membuka facebook yang didalmnya tersimpan domain puluhan drpd squid/lusca dengan regex refresh_pattern yang berlebihan, hal ini karena settingan di MT menggunakan default minimal config, jika lusca/proxy digunakan minimal regex maka respon time akan lebih bagus.

Ujicoba terakhir bersama bro siber pada sebuah proxy yang sudah produksi, ketika menggunakan minimal regex refresh_pattern yang bisa meningkatkan respon time tapi mengorbankan bandwith dan mengurangi hit. dan ketika menggunakan regex refresh_pattern untuk url2 tertentu, hit menjadi tinggi tapi respon time menjadi lamban

silahkan test dan bandingkan ketika loading poker

TEST 1


Code:
refresh_pattern .zynga.com.*\.(swf|jpg|gif|png|mp3)  43800 95% 43800 override-expire ignore-reload store-stale

refresh_pattern \.(jp(e?g|e|2)|tiff?|bmp|gif|png)($|&)  43800 95% 43800  ignore-no-cache ignore-no-store reload-into-ims override-expire store-stale
TEST 2
Code:
refresh_pattern \.(jp(e?g|e|2)|tiff?|bmp|gif|png)($|&)  0  95% 43800  ignore-no-cache ignore-no-store reload-into-ims override-expire store-stale
dari hasil ujicoba :
Test 1 :
Quote:
Request Hit Ratios: 5min:80.7%, 60min: 79.4%
Byte Hit Ratios: 5min: 12.0%, 60min: 16.7%
Request Memory Hit Ratios: 5min: 21.7%, 60min: 19.1%
Request Disk Hit Ratios: 5min: 95.8%, 60min: 90.0%
Respon time > 20 detik loading

Test 2 :
Quote:
Request Hit Ratios: 5min:50.7%, 60min: 49.4%
Byte Hit Ratios: 5min: 12.0%, 60min: 16.7%
Request Memory Hit Ratios: 5min: 12.7%, 60min: 20.1%
Request Disk Hit Ratios: 5min: 50.8%, 60min:38.7%
Respon time < 7 detik loading


sumber: http://jasamikrotik.blogspot.com/2010/08/seputar-proxy-cache-refreshpattern.html