setelah lama pake squid sebagai proxy server..terbersit pikiran " Apakah Proxy Q udah menjalankan tugasnya dengan Baik yach???"setelah ngecek kinerja squid Q slama ini ternyata hanya mentok di kisaran hit 20%-25% huh sedih juga rasanya...padahal di polling forum linux.or.id ada yg bisa nyampek 70%...akhirnya ketemu juga tutorialnya yaitu proxy setan(serem juga yah namanya...)..bgini isi tutorialnya..
Jika 1 hardisk 20 GB dibuat partisinya kira2 spt ini (ini preferensi pribadi
berdasarkan eksperimen utk Squid saja lho). Silahkan dikomentari.
/dev/hda1 1G /
/dev/hda5 2G /var
/dev/hda6 256M swap
/dev/hda7 12G /cache
/dev/hda8 sisanya /home
Alasan kok /var, swap, dan /cache mengumpul ditengah, ya krn supaya ‘head’
hardisk efektif bergerak di track ‘average’ atau ditengah-tengah dg frekuensi
akses tertinggi shg kira2 kalau didiagramkan distribusinya normal
(Gaussian distribution atau bentuk bel). Swap hanya 256MB krn memori anda
toh 1GB (terus terang saya pribadi kalau bisa menghindari sebesar ini juga,
toh jika Squid sudah mempergunakan swap sebesar ini mestinya juga sudah melambat kok).
Tapi /var agak besar supaya bisa menampung banyak log, termasuk log Squid yg
kalau dirotasi sebulan sekali bisa berukuran sangat besar (dulu pernah log mesin
mencapai 1GB karena rotasinya per 3 bulan padahal bw-nya hanya 64kbps, tapi
sekarang kalau tidak salah dirotasi per 2 minggu atau per bulan saja, semua
ini tergantung intensitas akses pengguna dan bw yg dilanggani).
Terus utk cache swap Squid itu sendiri kira2 70-80% dari ukuran partisinya
(12GB x 75% = 9GB). Berawal dari konfig spt ini mestinya parameter2
di squid.conf pengaruhnya sudah tidak setinggi jika cache swap atau hardisk
anda terlalu penuh. Sekali lagi kita mau sekedar menghemat bw maka biasanya
cache sangat agresif dan aksesnya akan melambat jika
hardisknya ‘under performance’. Spt di poll ini, harus berimbang antara
kecepatan akses dan penghematan bw. Jelas dari sisi pengguna tidak akan
perduli anda mau menghemat bw atau tidak yg pasti bagi dia aksesnya harus cepat,
gitu kan ya? Jadi utk 9GB cache swap jumlah L1 direktorinya 22.
>aku pake di mesin proxy:
Proc XEON 2.8GHz 512K HT
HD IDE 40GB seagate 7200rpm
HD SCSI 36GB seagate 10000rpm
MB INTEL server HG2
Hmmm, hardisk-nya tidak ada yg lebih kecil-kecil ya? Soalnya mending 9GB-an
(kalau SCSI) 10K rpm kalikan 6 atau lebih daripada 2 yg besar-besar ini.
Tapi cari hardisk kecil-kecil sekarang mestinya susah ya?, he he he …..
>FC3 kernel 2.6.10 dengan patch reiser4.
paket reiser4 dari namesys.com
Sip, semoga opsi-opsi kompilasi di kernel-nya sudah optimum semua, alias modul yg
tidak diperlukan dihilangkan saja, biar gesit (pengalaman pribadi kernel yg baik
ukurannya kira-kira di bawah 1 MB tanpa mengorbankan kemampuannya).
>semua partisi system di HD IDE, dan HD SCSI aku jadikan satu partisi untuk /cachez
dengan alokasi 28GB memakai filesystem reiser4 metode aufs (squid).
Jangan lupa opsi mount (di fstab) ditambahkan noatime dan notail (kalau perlu lebih
aman sekalian (noexec dan tidak user mountable). Maksud anda dijadikan 1 partisi
itu di-RAID mode 0-kan (striping)?? Saran saya malah jangan, jadi biarkan spindle
per drive bergerak bebas mandiri tak bergantung 1 dg lainnya. Jadi mending 2 direktori
saja dg mekanisme least-load atau round-robin bisa dicobakan dan dilihat efektivitasnya.
Silahkan dilihat alasannya di milisnya squid-cache.org, banyak yg sudah membahas kok.
Pemakaian memorinya juga harus diamati terus soalnya jika, sekali lagi, mesin anda
sudah mulai swap ke hardisk ya sama saja alias kembali menjadi pelan. Intinya bgmana
menghindari swap memori dipergunakan (idealnya server yg super cepat itu tidak
memiliki swap memori berarti memori fisiknya harus super besar juga).
>cache_store_log /dev/null
cache_store_log none
Kalau yg ini saya yakin benar kok (spt yg dikomentari Mas Firewaxx).
Refresh_pattern diperbaiki saja krn bekerja mulai yg paling atas baru ke bawah.
refresh_pattern .gif 4320 50% 43200
refresh_pattern .jpg 4320 50% 43200
refresh_pattern .tif 4320 50% 43200
refresh_pattern ^http://www.friendster.com/.* 720 100% 4320
refresh_pattern ^http://mail.yahoo.com/.* 720 100% 4320
refresh_pattern ^http://mail1.plasa.com/.* 720 100% 4320
refresh_pattern ^http://*.yahoo.*/.* 720 100% 4320
refresh_pattern ^http://*.friendster.*/.* 720 100% 4320
refresh_pattern ^http://www.yahoo.com/.* 720 100% 4320
refresh_pattern ^ftp: 10080 95% 241920 reload-into-ims override-lastmod
refresh_pattern . 180 95% 120960 reload-into-ims override-lastmod
Komentar: sebenarnya baris paling bawah itu umum artinya selain yg di atas-nya
akan kena setting ini. Yg mjd pertanyaan saya kok file image diberi setting yg
berbeda? Utk email yg berbasis web mungkin ada alasannya supaya lebih cepat
divalidasi lagi.
Saran saya dicoba dulu 2 baris yg terakhir saja, baru jika dirasa ada kebutuhan
lain baru pelan-pelan ditambahkan baris-baris sebelumnya.
Jadi refresh_pattern hanya ini saja:
refresh_pattern ^ftp: 10080 95% 241920 reload-into-ims override-lastmod
refresh_pattern . 180 95% 120960 reload-into-ims override-lastmod
ACL saya tinggalkan apa adanya krn ini spesifik kebutuhan anda. Utk bloking
berbasis url_regex, ya kalau bisa Squid dikompilasi ulang dg opsi gnuregex supaya
lebih efisien. Lihat posting sebelumnya. Paling tidak bisa diringkas lagi mjd:
http_access deny porno !noporno
artinya kita blok semua kata yg ada di file porno kecuali semua kata yg ada di
file noporno (!=kecuali).
>maximum_object_size 10240 KB
Lha ini kok ukuran object yg bisa disimpan Squid hanya 10MB saja??
Dinaikkan saja mjd mungkin 128 MB?
maximum_object_size 128 MB
>minimum_object_size 4 KB
Dihilangkan saja, biarkan Squid menyimpan object terkecil pun tidak ada masalah kok.
>logfile_rotate 0
Dibuat logfile_rotate 1 saja, siapa tahu anda butuh melihat statistik sebelumnya.
>forwarded_for on
Biasanya ini di-off-kan saja supaya anonimity bisa terjaga (tapi jika memang
diperlukan yg tidak apa-apa).
###############################################################################
Banyak faktor yg membuat Squid ‘overloaded’ shg saat diakses malah membuat
lebih pelan:
1. Cache di hardisk terlalu besar shg pemakaian memori terlalu besar (dan mungkin
sudah mulai swap ke hardisk, silahkan dilihat via top dg rumus swap yg baik
25%an dari memori fisik, jika lebih biasanya akan pelan). Ingat per 1 GB cache
di hardisk akan memakai 10MB memori lho, belum yg lain2.
2. Hardisk terlalu pelan (krn cache terlalu besar itu tadi), shg saat mencari
object lama menemukannya. Berapa besar cache anda di hardisk?, saya menduga
mesti lebih dari 10an GB ya??
3. Browser/klien yg berusaha memanfaatkan Squid terlalu banyak shg antrian yg
berebut utk minta layanan Squid terlalu panjang walaupun toh akhirnya akan
mengakses situs yg belum pernah dikunjungi sebelumnya (yg kalau Squid-nya
pintar bisa membedakan saat akan diantrikan, mestinya?). Silahkan dilihat
stats via cachemgr.cgi, saya ada kecurigaan di i/o queue-nya sudah terlalu
panjang.
4. Mesin server terlalu banyak melayani user atau utk layanan yg lain. Dari
pengalaman, mesin dg 256MB dan beberapa layanan, mail server agent, web server
dan Squid dg cache di hardisk 6GB plus sekitar 10 PC klien saja sudah lumayan
mepet kinerjanya kok. Perlu diingat Squid butuh memori yg besar tidak prosesor
yg cepat plus hardisk yg super cepat. Ini belum ditambahi layanan yg lain-lain
lho. Intinya idealnya utk Squid mesin server seharusnya terdedikasi
(layanannya hanya Squid).
Saran utk mencoba mengidentifikasi kelambatan Squid krn defisiensi memori.
1. Ganti memori tambahan, minimal 256MB dan dicobakan di mesin anda.
Jika ternyata tambah cepat berarti ya ‘obat’nya ini yg berarti sudah saatnya
meng’upgrade’ mesin anda.
2. Squid saat di-reconfigure (squid -k reconfigure) mjd lebih cepat kembali.
3. Terjadi perbedaan kecepatan akses saat jumlah browser yg terbuka berbeda,
tetapi ini bisa juga disebabkan pipa yg anda langgani (bandwidth) sudah diambang
batas kelayakan.
Saran utk mencoba mengidenfikasi kelambatan Squid krn kinerja hardisk yg kurang baik.
1. LED indikator hardisk ‘nyaris’ tak henti-hentinya hidup (bukan nyaris tak
terdengar ya?), krn selalu terjadi proses i/o ke sana. Inilah yg membedakan
hardisk dg cache h/w yg kecil dan besar (dan yg membedakan harganya juga).
Carilah hardisk yg berkinerja agak hebat (cache 4MB, seektime 8ms, rpm 10k, idealnya)
dan jangan terlalu besar ukurannya (jadi kecil-kecil tapi banyak). Tapi itu tadi,
sulit sekarang mencari hardisk ukuran kecil di pasaran (kalau tidak salah utk SCSI
UW2-160-an, 9.1GBan masih ada).
2. Coba ditambahkan (atau dipinjamkan) hardisk 1 lagi dan direktori cache
anda dibagi ke hardisk yg baru ini dg L1 direktorinya dibagi 2 juga
(dg ukuran separuhnya juga).
Jadi misalnya awal /cache 12000 28 256 dibagi mjd 2, /cache1 6000 14 256
dan /cache2 6000 14 256.
Begitu dan jangan lupa jangan pernah memakai semuanya spt ukuran partisinya
(ingat idealnya antara 70%an kapasitas partisi maksimalnya), supaya saat akan
menulisi hardisk, tempat kosongnya lebih mudah ditemukan (kalau sudah terlalu
penuh akan sulit dan lama menemukan dan boleh jadi terfragmentasi tempatnya).
Saran terpenting:
Squid agresif itu utk kondisi di Indonesia menurut saya sangat cocok
(mungkin utk negara maju malah diprotes ya, krn bw sudah sangat murah dan hr
tenaga teknisnya utk ngoprek terlalu mahal). Tetapi yg perlu diingat adalah
semuanya itu ada batasnya ibarat sepeda motor itu kalau di’gas’ penuh mendadak
terkadang malah mati mesinnya. Jadi agresif yg agresif tapi jangan terlalu
ambisius dan harus optimal sesuai kemampuan baik mesin maupun bw yg dilanggani.
###############################################################################
>/cache 45000 16 256
45GB adl suatu ukuran yg ‘rruuarr biasa’ besarnya utk single spindle.
Pengalaman saya selama kutak-katik Squid yg terbesar saya pernah tahu utk hardisk
tunggal (single spindle) itu hanya sekitar 16an GB (80% hdd 20GB).
Jadi saya jadi yakin sekarang bottleneck Squid anda ada di sini. Belum lagi
ditambah swap memori yg utk indeks object Squid saja sudah 450an MB, belum yg
lain-lain (kalau tidak salah memori fisik anda 256MB ya?). Jadi jelas swap memori
anda mestinya juga sudah lumayan besar shg semakin memperparah kondisi mesin
server ini. Sekali lagi contoh-contoh konfigurasi mesin (dan skalabilitasnya)
dari ircache rata2 memori 512 MB s/d 2 GB dg minimal 6 hardisk SCSI (kalau tidak
salah per cache direktori 6GB-an krn dari ukuran hardisk 9GB), sekedar gambaran saja.
Jadi di sini tujuan menghemat bandwidth tercapai tetapi tujuan mempercepat akses
internet tidak tercapai.
>b/w nya terlalu kecil dimana 96 kbps yg aku punya untuk melayani 20 pc
Secara teoritis 96kbps/20pc = 4.8kbps/pc dan menurut suatu survei kepuasan
pengguna akses internet yg layak itu hanya membutuhkan kecepatan akses minimal
5kbps kontinu (yg setiap saat diperoleh secara terus menerus dan tidak pernah kurang).
Dibantu Squid dg hit rate 50% maka angka 4.8kbps ini akan naik mjd 9.6an kbps
saat tjd lonjakan permintaan (burstiness rate). Belum lagi jika perilaku per user
yg jarang download file berukuran besar dan hanya mengambil halaman2 web
setelah itu membaca (berhenti download), katakanlah dg suatu nilai kebolehjadian 50%, maka
kecepatan akses akan naik lagi mjd 19.2an kbps. Memang inilah yg paling sering kita
alami baik di tingkat rumahan atau komersial (warnet) dan inilah ukuran kelayakan
di Indonesia (atau strategi penghematan perusahan2 penyedia jasa internet ya??).
Saya yakin bw yg kita miliki tidak akan cukup jika semua pengakses internet men-download
file yg berukuran besar pada saat yg bersamaan dalam periode yg panjang.
Baik memang sebenarnya Squid sudah mencadangkan 30720KB memori tetapi ternyata
kebutuhannya hingga 32510KB (yg sudah melewati cadangan itu tadi) sehingga boleh
jadi memori swap ke hardisk sudah mulai aktif (jika ternyata memori totalnya tidak cukup).
Silahkan dilihat ulang via top. Tetapi jika ternyata memori totalnya (fisik)
masih cukup dan belum swap Squid akan terus memperbesar ‘cadangan’ ini (total
space in the arena) hingga semua kebutuhan Squid terpenuhi
(ingat 10MB per 1GB cache di hardisk ditambah yg lain2). Ini efek jika
opsi memory_pools off (jika di-on-kan batasannya jadi kaku dan terkadang
kita tidak tahu seberapa sih harus dicadangkan, dan ruginya sudah dicadangkan
ttp belum tentu dibutuhkan krn tidak tahu saja berapa yg harus dicadangkan itu tadi).
Solusi paling sederhana stl pengamatan adalah dg mengurangi ruang cache di hardisk,
misalnya dikurangi per 2 GB (mis. dari awal 12GB jadi 10GB terus diamati lagi,
tentunya L1 direktori juga disesuaikan lho), dan seterusnya sampai Squid sudah
tidak mengaktifkan memori swap (atau user sudah tidak bisa membedakan kelambatan
yg terjadi walaupun sudah swap sedikit). Solusi berikutnya ya dg mengaktifkan
batasan memori yg akan dipakai oleh Squid via
memory_pools on dan memory_pools_limit xx MB. XX
inilah yg agak sulit ditentukan krn kebutuhan Squid yg dinamis ini
(tapi bisa dikira-kira dan didekati kok). Jadi misalnya Squid dg
cache swap 12 GB butuh memori 190-an MB tapi kita batasi hanya 80 MB, ya boleh
jadi cache swap maksimal akan terisi hanya 6an GB krn utk indeks saja kira-kira bisa
hanya separuhnya. Jadi tidak terus kita asal punya hardisk besar tanpa perhitungan
resource yg dimiliki langsung dipakai semuanya. Tapi metode ‘trial and error’
memang pendekatan yg tercepat sambil mencari pengalaman mengamati dan men’tuning’
Squid lebih jauh. Rumus umum dan kasar sbg pendekatan awal biasanya spt di bawah:
mtot x 25% / 10 x 1 GB= ruang cache swap di hardisk awal dg mtot=memori fisik total.
Contoh jika memori fisik 512MB:
512MB x 25% / 10 x 1 GB = 12.5GB ruang cache swap di hardisk.
Tapi ini rumusan yg aman dan mesin Squid terdedikasi. Ada yg lebih ekstrim dan
berani menaikkan hingga 16an GB dan mungkin memori swap ke hardisk sudah aktif
tetapi kecepatan akses Squid masih terjaga (mungkin jumlah kliennya sedikit
dan hardisknya cepat) ya tidak apa-apa. Mestinya angka-angka ini mjd lebih kecil
jika mesin dipakai bersama utk layanan yg lain. Sekali lagi kondisi dan kebutuhan
berbeda-beda belum sifat kedinamisan si Squid itu sendiri. Kalau tidak salah
antar Squid yg berbeda versi saja sifat2-nya juga berbeda walaupun mungkin
sedikit saja perbedaannya.
Pertama yg harus kita pahami adalah:
1. Tidak semua halaman web bisa disimpan (di’cache’) Squid
2. Banyak situs yg memang berusaha halaman2 mereka tidak bisa di’cache’ krn
ada keperluan utk statistik mereka (iklan, visit/hit rate, dll) via ‘pragma
no-cache’ atau metode yg lain 3. Ingat Squid memang tidak akan menyimpan
alamat url selama ada karakter ? atau cgi-bin krn ini secara mendasar tidak
diijinkan disimpan (masalah keamanan), belum yg lain-lain.
4. 1 Halaman web bisa terdiri atas banyak object, mungkin ada sebagian yg
memang ‘dinamis’ alias setiap saat berubah hingga tidak bisa disimpan.
Jadi memang di internet itu selalu terjadi ‘tarik-ulur’ antara yg mau menghemat
dg yg tidak mau dihemat, yg jahat dg yg baik, yg konstruktif dg yg destruktif,
dll.
Jika anda mau jadi ‘Squid ekstrimis’, ya pakai saja off-line mode. Artinya Squid
tidak akan perduli object2-nya valid atau tidak, kedaluarsa atau tidak, semuanya
akan dipaksa disimpan (sama kalau di browser IE mode offline).
Saya jamin kecepatan Squid anda akan tinggi dg hit rate tinggi dan bw anda
sangat irit pula tetapi paling sebentar saja akan diprotes oleh user2 anda,
Memang sudah ada beberapa usaha supaya ‘pragma no-cache’ ini tidak mdj
halangan halaman2 utk di’cache’ kan dg cara halamannya di’rewrite’ (tulis ulang)
dan menghilangkan opsi di atas tsb. Tetapi dari sisi legalitasnya bagaimana?
Ada yg mengatakan, lha saya yg mengakses dan membutuhkan kok tidak boleh
di’cache’? Tapi dari sisi penyedianya mengatakan, lha kalau tidak mau mengikuti
yg saya inginkan ya jangan mengakses situs saya kan?? Jadi artinya
di sini jika sudah diberi ‘pagar’ atau ‘pengumuman’ ya mestinya harus diikuti
aturannya, jangan terus malah dilanggar
Ini opsi-2 konfigurasi utk kompilasi Squid khusus utk Linux.
./configure
–enable-gnuregex
–enable-async-io=24
–with-aufs-threads=24
–with-pthreads
–with-aio
–with-dl
–enable-storeio=aufs
–enable-removal-policies=heap
–enable-icmp
–enable-delay-pools
–disable-wccp
–enable-snmp
–enable-cache-digests
–enable-default-err-languages=English
–enable-err-languages=English
–enable-linux-netfilter
–disable-ident-lookups
–disable-hostname-checks
–enable-underscores
Silahkan disesuaikan
## Jika ada beberapa situs terdekat yg mungkin hanya 1 hop, di-by pass saja
supaya kerja Squid benar-benar utk yg jaraknya jauh
## 1. Situs-situs yg membutuhkan login di-’direct’ via always_direct dan jangan
disimpan via hierarchy_stoplist cgi-bin ? namasitus dan acl QUERY
urlpath_regex cgi-bin ? namasitus. Diusahakan namasitus sangat spesific
soalnya jika misalnya hanya yahoo.com ya semua yahoo.com akan kena alias
mem-’by-pass’ Squid. Jadi bisa misalnya mail.yahoo.com saja.
2. Via hierarchy_stoplist cgi-bin ? namasitus dan acl QUERY urlpath_regex cgi-bin ?
jika alamat mengandung misalnya halaman2 java applet/script ekstensi .awt, .js, dst-nya.
3. Refresh_pattern minimalnya dikurangi, sekali lagi konfigurasi 180 (atau 3 jam)
bagi beberapa keperluan tidak cocok. Silahkan dicoba misalnya hanya 10 menitan
dan diamati.
4. Terakhir, mungkin ie_refresh harus diaktifkan dan biasanya dg menekan tombol
refresh/reload, Squid akan ‘terpaksa’ memvalidasi halaman tersebut
(bisa beberapa kali refresh/reload terkadang utk proses cek validasi ini).
hierarchy_stoplist cgi-bin ? localhost domain-anda.com isp-anda.com domainku.web.id
acl QUERY urlpath_regex cgi-bin ? localhost domain-anda.com isp-anda.com domainku.web.id
no_cache deny QUERY
## Dari pengalaman 6 MB akan lebih cepat dan biarkan Squid bekerja lebih
keraslagi jika cache_mem diperbesar efeknya adalah pengaksesan obyek lebih
lembam (atau pelan dalam pencarian di mesin lokal, tetapi begitu ketemu ya
cepat aksesnya) dan dg cache_mem 6 MB kita rasakan paling responsif. Dari
banyak forum dan user group rumus umum cache_mem adalah 1/3 atau 1/4 dari
total memori fisik (benar ya?). Tapi default 8 MB saya pikir sudah pas dan
disarankan oleh si Henrik Nordstrom.
Kenapa kok batasan minimum 98 dan maksimum 99 alasannya supaya proses store
and purge obyek tidak sporadis jalannya.
cache_mem 6 MB
cache_swap_low 98
cache_swap_high 99
## Maksimum obyek di hardisk dan di memori diupayakan lebih besar shg byte hit
lebih tinggi (bisa dinaikkan lagi jika hardisk berkecepatan tinggi dan
jumlahnya banyak dg memori yg lebih besar pula)
maximum_object_size 128 MB
maximum_object_size_in_memory 32 KB
## Jika memori 512 MB atau lebih besar silahkan cache diperbesar
ipcache_size 2048
ipcache_low 98
ipcache_high 99
## Utk heap replacement saya memakai LFUDA utk cache hardisk dan GDSF utk cache
memori dg alasan di hardisk diprioritaskan obyek yg ukuran besar-besar dan
di memori obyek yg ukurannya kecil-kecil utk disimpan
cache_replacement_policy heap LFUDA
memory_replacement_policy heap GDSF
## Idealnya ruang di hardisk yg anda pakai hanya sekitar 70% dari total krn
semakin penuh Squid akan semakin pelan mencari tempat kosong, mis. utk cache
1 GB maka yg dipakai hanya 700MB (jangan 1GB dipakai semuanya). Jangan lupa
hanya 1 direktori per drive krn faktor penghambat adalah kecepatan spindle hardisk
lho, bukan terus dg memperbanyak direktori pada 1 hd akan mempercepat
(hd orde milidetik, memori orde nanodetik). Jadi mending hardisknya banyak
tapi ukurannya kecil-kecil daripada hanya 1 berukuran besar. Terus jika OS-nya
Linux pakailah FS-nya Reiser (versi 4 tercepat) dg metode akses aufs. Diskd
optimal di FreeBSD tetapi tidak di Linux lho. Jangan lupa di partisi tsb
noatime dan notail diaktifkan spy tidak menambah ekstra write saat menulis
atau membaca. Intinya hardisk adalah faktor penghambat terbesar di Squid.
## saran kira2 70% dari 16GB
cache_dir aufs /cachez 12000 28 256
atau (utk ruang 4GB-an per hardisk)
cache_dir aufs /cachehardisk1 3000 8 256
cache_dir aufs /cachehardisk2 3000 8 256
cache_dir aufs /cachehardisk3 3000 8 256
cache_dir aufs /cachehardisk4 3000 8 256
atau minimal di bawah ini supaya modifikasi tidak terlalu jauh
cache_dir diskd /cachez 12000 28 256 Q1=72 Q2=88
## Log utk info yg vital saja dan diusahakan file-file log ada di hardisk
tersendiri spy tidak mempengaruhi kecepatan direktori cache utamanya
log_fqdn off
log_icp_queries off
cache_log none
cache_store_log none
## Dg ‘menipu’ dan memaksa sedikit supaya akses obyek lebih intensif di lokal
Squid dan waktu simpan ditambah sebelum proses validasi terjadi (mis. validasi
terjadi per 3 jam dg penyimpanan obyek terlama 3 bulan, utk ftp bisa lebih lama lagi)
refresh_pattern ^ftp: 10080 95% 241920 reload-into-ims override-lastmod
refresh_pattern . 180 95% 120960 reload-into-ims override-lastmod
## Toleransi aborting dihilangkan saja
quick_abort_min 0
quick_abort_max 0
quick_abort_pct 98
## Mematikan dan merekonfigurasi Squid jangan terlalu cepat krn bisa mengakibat
kan integritas file kacau
shutdown_lifetime 10 seconds
## tidak perlu reservasi memori
memory_pools off
## Penting utk relasi dg sibling dg mengukur respons-nya via ICP dan ICMP
(tapi ada isp yg tidak mengijinkan lho)
icp_hit_stale on
query_icmp on
## Penting utk meningkatkan refresh pattern lebih lanjut
reload_into_ims on
pipeline_prefetch on
vary_ignore_expire on
## Sekali lagi Squid diperlukan utk mengambil yg jaraknya jauh, jarak dekat
langsung saja
acl local-dst dst semuaalamatlokal semuaalamatipygdekat
acl local-domain dstdomain localhost domain-anda.com isp-anda.com domainku.web.id
always_direct allow localhost local-dst local-domain
always_direct deny all
## Tidak begitu diperlukan
##ie_refresh on
Contoh Konfigurasi
;—————————————————————————————;
# LOGFILE PATHNAMES AND CACHE DIRECTORIES
# —————————————————————————–
cache_dir diskd /cache/squid 1000 8 256 # << Sesuaikan dengan kebutuhan anda
access_log /cache/access.log squid
cache_log /cache/cache.log
log_fqdn off
buffered_logs off
# OPTIONS FOR TUNING THE CACHE
# —————————————————————————–
refresh_pattern /.gif 4320 50% 43200
refresh_pattern /.jpg 4320 50% 43200
refresh_pattern /.jpeg 4320 50% 43200
refresh_pattern /.png 4320 50% 43200
refresh_pattern ^http://www.friendster.com/.* 720 100% 10080
refresh_pattern ^http://mail.yahoo.com/.* 720 100% 10080
refresh_pattern ^http://*.yahoo.*/.* 720 100% 7200
refresh_pattern ^http://*.google.com/.* 720 100% 10080
refresh_pattern ^http://www.telkomspeedy.com/.* 720 100% 28800
refresh_pattern ^http://*.blogsome.com/.* 720 80% 10080
refresh_pattern ^http://*.wordpress.com/.* 720 80% 10080
refresh-pattern ^http://detik.com/.* 720 90% 2880
refresh_pattern ^ftp: 14400 90% 43200 reload-into-ims
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern . 0 20% 4320 reload-into-ims
quick_abort_min 0 KB
quick_abort_max 0 KB
quick_abort_pct 95
# ACCESS CONTROLS
# —————————————————————————–
acl my_network src 192.168.1.0/24
acl SSL_ports port 443 563
#acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 443 563 # https
#acl Safe_ports port 488 # gss-http
#acl Safe_ports port 591 # filemaker
#acl Safe_ports port 777 # multiling http
http_access allow manager localhost my_network
http_access allow my_network
acl download url_regex -i .mp3
acl download url_regex -i .3gp
acl download url_regex -i .avi
acl download url_regex -i .mpg
acl download url_regex -i .mpeg
acl download url_regex -i .wav
acl download url_regex -i .flv
acl download url_regex -i .swf
# DELAY POOL PARAMETERS (all require DELAY_POOLS compilation option)
# —————————————————————————–
delay_pools 2
delay_class 1 3
delay_parameters 1 -1/-1 -1/-1 8000/8000
delay_access 1 allow my_network download
delay_access 1 deny all
delay_class 2 2
delay_parameters 2 -1/-1 -1/-1
delay_access 2 allow my_network
delay_access 2 deny all
# ADMINISTRATIVE PARAMETERS
# —————————————————————————–
cache_effective_user squid
# MISCELLANEOUS
# —————————————————————————–
logfile_rotate 5
reload_into_ims on
store_dir_select_algorithm round-robin
# ADMINISTRATIVE PARAMETERS
# —————————————————————————–
cache_mgr youremail@host.com
visible_hostname localhost
Jika 1 hardisk 20 GB dibuat partisinya kira2 spt ini (ini preferensi pribadi
berdasarkan eksperimen utk Squid saja lho). Silahkan dikomentari.
/dev/hda1 1G /
/dev/hda5 2G /var
/dev/hda6 256M swap
/dev/hda7 12G /cache
/dev/hda8 sisanya /home
Alasan kok /var, swap, dan /cache mengumpul ditengah, ya krn supaya ‘head’
hardisk efektif bergerak di track ‘average’ atau ditengah-tengah dg frekuensi
akses tertinggi shg kira2 kalau didiagramkan distribusinya normal
(Gaussian distribution atau bentuk bel). Swap hanya 256MB krn memori anda
toh 1GB (terus terang saya pribadi kalau bisa menghindari sebesar ini juga,
toh jika Squid sudah mempergunakan swap sebesar ini mestinya juga sudah melambat kok).
Tapi /var agak besar supaya bisa menampung banyak log, termasuk log Squid yg
kalau dirotasi sebulan sekali bisa berukuran sangat besar (dulu pernah log mesin
mencapai 1GB karena rotasinya per 3 bulan padahal bw-nya hanya 64kbps, tapi
sekarang kalau tidak salah dirotasi per 2 minggu atau per bulan saja, semua
ini tergantung intensitas akses pengguna dan bw yg dilanggani).
Terus utk cache swap Squid itu sendiri kira2 70-80% dari ukuran partisinya
(12GB x 75% = 9GB). Berawal dari konfig spt ini mestinya parameter2
di squid.conf pengaruhnya sudah tidak setinggi jika cache swap atau hardisk
anda terlalu penuh. Sekali lagi kita mau sekedar menghemat bw maka biasanya
cache sangat agresif dan aksesnya akan melambat jika
hardisknya ‘under performance’. Spt di poll ini, harus berimbang antara
kecepatan akses dan penghematan bw. Jelas dari sisi pengguna tidak akan
perduli anda mau menghemat bw atau tidak yg pasti bagi dia aksesnya harus cepat,
gitu kan ya? Jadi utk 9GB cache swap jumlah L1 direktorinya 22.
>aku pake di mesin proxy:
Proc XEON 2.8GHz 512K HT
HD IDE 40GB seagate 7200rpm
HD SCSI 36GB seagate 10000rpm
MB INTEL server HG2
Hmmm, hardisk-nya tidak ada yg lebih kecil-kecil ya? Soalnya mending 9GB-an
(kalau SCSI) 10K rpm kalikan 6 atau lebih daripada 2 yg besar-besar ini.
Tapi cari hardisk kecil-kecil sekarang mestinya susah ya?, he he he …..
>FC3 kernel 2.6.10 dengan patch reiser4.
paket reiser4 dari namesys.com
Sip, semoga opsi-opsi kompilasi di kernel-nya sudah optimum semua, alias modul yg
tidak diperlukan dihilangkan saja, biar gesit (pengalaman pribadi kernel yg baik
ukurannya kira-kira di bawah 1 MB tanpa mengorbankan kemampuannya).
>semua partisi system di HD IDE, dan HD SCSI aku jadikan satu partisi untuk /cachez
dengan alokasi 28GB memakai filesystem reiser4 metode aufs (squid).
Jangan lupa opsi mount (di fstab) ditambahkan noatime dan notail (kalau perlu lebih
aman sekalian (noexec dan tidak user mountable). Maksud anda dijadikan 1 partisi
itu di-RAID mode 0-kan (striping)?? Saran saya malah jangan, jadi biarkan spindle
per drive bergerak bebas mandiri tak bergantung 1 dg lainnya. Jadi mending 2 direktori
saja dg mekanisme least-load atau round-robin bisa dicobakan dan dilihat efektivitasnya.
Silahkan dilihat alasannya di milisnya squid-cache.org, banyak yg sudah membahas kok.
Pemakaian memorinya juga harus diamati terus soalnya jika, sekali lagi, mesin anda
sudah mulai swap ke hardisk ya sama saja alias kembali menjadi pelan. Intinya bgmana
menghindari swap memori dipergunakan (idealnya server yg super cepat itu tidak
memiliki swap memori berarti memori fisiknya harus super besar juga).
>cache_store_log /dev/null
cache_store_log none
Kalau yg ini saya yakin benar kok (spt yg dikomentari Mas Firewaxx).
Refresh_pattern diperbaiki saja krn bekerja mulai yg paling atas baru ke bawah.
refresh_pattern .gif 4320 50% 43200
refresh_pattern .jpg 4320 50% 43200
refresh_pattern .tif 4320 50% 43200
refresh_pattern ^http://www.friendster.com/.* 720 100% 4320
refresh_pattern ^http://mail.yahoo.com/.* 720 100% 4320
refresh_pattern ^http://mail1.plasa.com/.* 720 100% 4320
refresh_pattern ^http://*.yahoo.*/.* 720 100% 4320
refresh_pattern ^http://*.friendster.*/.* 720 100% 4320
refresh_pattern ^http://www.yahoo.com/.* 720 100% 4320
refresh_pattern ^ftp: 10080 95% 241920 reload-into-ims override-lastmod
refresh_pattern . 180 95% 120960 reload-into-ims override-lastmod
Komentar: sebenarnya baris paling bawah itu umum artinya selain yg di atas-nya
akan kena setting ini. Yg mjd pertanyaan saya kok file image diberi setting yg
berbeda? Utk email yg berbasis web mungkin ada alasannya supaya lebih cepat
divalidasi lagi.
Saran saya dicoba dulu 2 baris yg terakhir saja, baru jika dirasa ada kebutuhan
lain baru pelan-pelan ditambahkan baris-baris sebelumnya.
Jadi refresh_pattern hanya ini saja:
refresh_pattern ^ftp: 10080 95% 241920 reload-into-ims override-lastmod
refresh_pattern . 180 95% 120960 reload-into-ims override-lastmod
ACL saya tinggalkan apa adanya krn ini spesifik kebutuhan anda. Utk bloking
berbasis url_regex, ya kalau bisa Squid dikompilasi ulang dg opsi gnuregex supaya
lebih efisien. Lihat posting sebelumnya. Paling tidak bisa diringkas lagi mjd:
http_access deny porno !noporno
artinya kita blok semua kata yg ada di file porno kecuali semua kata yg ada di
file noporno (!=kecuali).
>maximum_object_size 10240 KB
Lha ini kok ukuran object yg bisa disimpan Squid hanya 10MB saja??
Dinaikkan saja mjd mungkin 128 MB?
maximum_object_size 128 MB
>minimum_object_size 4 KB
Dihilangkan saja, biarkan Squid menyimpan object terkecil pun tidak ada masalah kok.
>logfile_rotate 0
Dibuat logfile_rotate 1 saja, siapa tahu anda butuh melihat statistik sebelumnya.
>forwarded_for on
Biasanya ini di-off-kan saja supaya anonimity bisa terjaga (tapi jika memang
diperlukan yg tidak apa-apa).
###############################################################################
Banyak faktor yg membuat Squid ‘overloaded’ shg saat diakses malah membuat
lebih pelan:
1. Cache di hardisk terlalu besar shg pemakaian memori terlalu besar (dan mungkin
sudah mulai swap ke hardisk, silahkan dilihat via top dg rumus swap yg baik
25%an dari memori fisik, jika lebih biasanya akan pelan). Ingat per 1 GB cache
di hardisk akan memakai 10MB memori lho, belum yg lain2.
2. Hardisk terlalu pelan (krn cache terlalu besar itu tadi), shg saat mencari
object lama menemukannya. Berapa besar cache anda di hardisk?, saya menduga
mesti lebih dari 10an GB ya??
3. Browser/klien yg berusaha memanfaatkan Squid terlalu banyak shg antrian yg
berebut utk minta layanan Squid terlalu panjang walaupun toh akhirnya akan
mengakses situs yg belum pernah dikunjungi sebelumnya (yg kalau Squid-nya
pintar bisa membedakan saat akan diantrikan, mestinya?). Silahkan dilihat
stats via cachemgr.cgi, saya ada kecurigaan di i/o queue-nya sudah terlalu
panjang.
4. Mesin server terlalu banyak melayani user atau utk layanan yg lain. Dari
pengalaman, mesin dg 256MB dan beberapa layanan, mail server agent, web server
dan Squid dg cache di hardisk 6GB plus sekitar 10 PC klien saja sudah lumayan
mepet kinerjanya kok. Perlu diingat Squid butuh memori yg besar tidak prosesor
yg cepat plus hardisk yg super cepat. Ini belum ditambahi layanan yg lain-lain
lho. Intinya idealnya utk Squid mesin server seharusnya terdedikasi
(layanannya hanya Squid).
Saran utk mencoba mengidentifikasi kelambatan Squid krn defisiensi memori.
1. Ganti memori tambahan, minimal 256MB dan dicobakan di mesin anda.
Jika ternyata tambah cepat berarti ya ‘obat’nya ini yg berarti sudah saatnya
meng’upgrade’ mesin anda.
2. Squid saat di-reconfigure (squid -k reconfigure) mjd lebih cepat kembali.
3. Terjadi perbedaan kecepatan akses saat jumlah browser yg terbuka berbeda,
tetapi ini bisa juga disebabkan pipa yg anda langgani (bandwidth) sudah diambang
batas kelayakan.
Saran utk mencoba mengidenfikasi kelambatan Squid krn kinerja hardisk yg kurang baik.
1. LED indikator hardisk ‘nyaris’ tak henti-hentinya hidup (bukan nyaris tak
terdengar ya?), krn selalu terjadi proses i/o ke sana. Inilah yg membedakan
hardisk dg cache h/w yg kecil dan besar (dan yg membedakan harganya juga).
Carilah hardisk yg berkinerja agak hebat (cache 4MB, seektime 8ms, rpm 10k, idealnya)
dan jangan terlalu besar ukurannya (jadi kecil-kecil tapi banyak). Tapi itu tadi,
sulit sekarang mencari hardisk ukuran kecil di pasaran (kalau tidak salah utk SCSI
UW2-160-an, 9.1GBan masih ada).
2. Coba ditambahkan (atau dipinjamkan) hardisk 1 lagi dan direktori cache
anda dibagi ke hardisk yg baru ini dg L1 direktorinya dibagi 2 juga
(dg ukuran separuhnya juga).
Jadi misalnya awal /cache 12000 28 256 dibagi mjd 2, /cache1 6000 14 256
dan /cache2 6000 14 256.
Begitu dan jangan lupa jangan pernah memakai semuanya spt ukuran partisinya
(ingat idealnya antara 70%an kapasitas partisi maksimalnya), supaya saat akan
menulisi hardisk, tempat kosongnya lebih mudah ditemukan (kalau sudah terlalu
penuh akan sulit dan lama menemukan dan boleh jadi terfragmentasi tempatnya).
Saran terpenting:
Squid agresif itu utk kondisi di Indonesia menurut saya sangat cocok
(mungkin utk negara maju malah diprotes ya, krn bw sudah sangat murah dan hr
tenaga teknisnya utk ngoprek terlalu mahal). Tetapi yg perlu diingat adalah
semuanya itu ada batasnya ibarat sepeda motor itu kalau di’gas’ penuh mendadak
terkadang malah mati mesinnya. Jadi agresif yg agresif tapi jangan terlalu
ambisius dan harus optimal sesuai kemampuan baik mesin maupun bw yg dilanggani.
###############################################################################
>/cache 45000 16 256
45GB adl suatu ukuran yg ‘rruuarr biasa’ besarnya utk single spindle.
Pengalaman saya selama kutak-katik Squid yg terbesar saya pernah tahu utk hardisk
tunggal (single spindle) itu hanya sekitar 16an GB (80% hdd 20GB).
Jadi saya jadi yakin sekarang bottleneck Squid anda ada di sini. Belum lagi
ditambah swap memori yg utk indeks object Squid saja sudah 450an MB, belum yg
lain-lain (kalau tidak salah memori fisik anda 256MB ya?). Jadi jelas swap memori
anda mestinya juga sudah lumayan besar shg semakin memperparah kondisi mesin
server ini. Sekali lagi contoh-contoh konfigurasi mesin (dan skalabilitasnya)
dari ircache rata2 memori 512 MB s/d 2 GB dg minimal 6 hardisk SCSI (kalau tidak
salah per cache direktori 6GB-an krn dari ukuran hardisk 9GB), sekedar gambaran saja.
Jadi di sini tujuan menghemat bandwidth tercapai tetapi tujuan mempercepat akses
internet tidak tercapai.
>b/w nya terlalu kecil dimana 96 kbps yg aku punya untuk melayani 20 pc
Secara teoritis 96kbps/20pc = 4.8kbps/pc dan menurut suatu survei kepuasan
pengguna akses internet yg layak itu hanya membutuhkan kecepatan akses minimal
5kbps kontinu (yg setiap saat diperoleh secara terus menerus dan tidak pernah kurang).
Dibantu Squid dg hit rate 50% maka angka 4.8kbps ini akan naik mjd 9.6an kbps
saat tjd lonjakan permintaan (burstiness rate). Belum lagi jika perilaku per user
yg jarang download file berukuran besar dan hanya mengambil halaman2 web
setelah itu membaca (berhenti download), katakanlah dg suatu nilai kebolehjadian 50%, maka
kecepatan akses akan naik lagi mjd 19.2an kbps. Memang inilah yg paling sering kita
alami baik di tingkat rumahan atau komersial (warnet) dan inilah ukuran kelayakan
di Indonesia (atau strategi penghematan perusahan2 penyedia jasa internet ya??).
Saya yakin bw yg kita miliki tidak akan cukup jika semua pengakses internet men-download
file yg berukuran besar pada saat yg bersamaan dalam periode yg panjang.
Baik memang sebenarnya Squid sudah mencadangkan 30720KB memori tetapi ternyata
kebutuhannya hingga 32510KB (yg sudah melewati cadangan itu tadi) sehingga boleh
jadi memori swap ke hardisk sudah mulai aktif (jika ternyata memori totalnya tidak cukup).
Silahkan dilihat ulang via top. Tetapi jika ternyata memori totalnya (fisik)
masih cukup dan belum swap Squid akan terus memperbesar ‘cadangan’ ini (total
space in the arena) hingga semua kebutuhan Squid terpenuhi
(ingat 10MB per 1GB cache di hardisk ditambah yg lain2). Ini efek jika
opsi memory_pools off (jika di-on-kan batasannya jadi kaku dan terkadang
kita tidak tahu seberapa sih harus dicadangkan, dan ruginya sudah dicadangkan
ttp belum tentu dibutuhkan krn tidak tahu saja berapa yg harus dicadangkan itu tadi).
Solusi paling sederhana stl pengamatan adalah dg mengurangi ruang cache di hardisk,
misalnya dikurangi per 2 GB (mis. dari awal 12GB jadi 10GB terus diamati lagi,
tentunya L1 direktori juga disesuaikan lho), dan seterusnya sampai Squid sudah
tidak mengaktifkan memori swap (atau user sudah tidak bisa membedakan kelambatan
yg terjadi walaupun sudah swap sedikit). Solusi berikutnya ya dg mengaktifkan
batasan memori yg akan dipakai oleh Squid via
memory_pools on dan memory_pools_limit xx MB. XX
inilah yg agak sulit ditentukan krn kebutuhan Squid yg dinamis ini
(tapi bisa dikira-kira dan didekati kok). Jadi misalnya Squid dg
cache swap 12 GB butuh memori 190-an MB tapi kita batasi hanya 80 MB, ya boleh
jadi cache swap maksimal akan terisi hanya 6an GB krn utk indeks saja kira-kira bisa
hanya separuhnya. Jadi tidak terus kita asal punya hardisk besar tanpa perhitungan
resource yg dimiliki langsung dipakai semuanya. Tapi metode ‘trial and error’
memang pendekatan yg tercepat sambil mencari pengalaman mengamati dan men’tuning’
Squid lebih jauh. Rumus umum dan kasar sbg pendekatan awal biasanya spt di bawah:
mtot x 25% / 10 x 1 GB= ruang cache swap di hardisk awal dg mtot=memori fisik total.
Contoh jika memori fisik 512MB:
512MB x 25% / 10 x 1 GB = 12.5GB ruang cache swap di hardisk.
Tapi ini rumusan yg aman dan mesin Squid terdedikasi. Ada yg lebih ekstrim dan
berani menaikkan hingga 16an GB dan mungkin memori swap ke hardisk sudah aktif
tetapi kecepatan akses Squid masih terjaga (mungkin jumlah kliennya sedikit
dan hardisknya cepat) ya tidak apa-apa. Mestinya angka-angka ini mjd lebih kecil
jika mesin dipakai bersama utk layanan yg lain. Sekali lagi kondisi dan kebutuhan
berbeda-beda belum sifat kedinamisan si Squid itu sendiri. Kalau tidak salah
antar Squid yg berbeda versi saja sifat2-nya juga berbeda walaupun mungkin
sedikit saja perbedaannya.
Pertama yg harus kita pahami adalah:
1. Tidak semua halaman web bisa disimpan (di’cache’) Squid
2. Banyak situs yg memang berusaha halaman2 mereka tidak bisa di’cache’ krn
ada keperluan utk statistik mereka (iklan, visit/hit rate, dll) via ‘pragma
no-cache’ atau metode yg lain 3. Ingat Squid memang tidak akan menyimpan
alamat url selama ada karakter ? atau cgi-bin krn ini secara mendasar tidak
diijinkan disimpan (masalah keamanan), belum yg lain-lain.
4. 1 Halaman web bisa terdiri atas banyak object, mungkin ada sebagian yg
memang ‘dinamis’ alias setiap saat berubah hingga tidak bisa disimpan.
Jadi memang di internet itu selalu terjadi ‘tarik-ulur’ antara yg mau menghemat
dg yg tidak mau dihemat, yg jahat dg yg baik, yg konstruktif dg yg destruktif,
dll.
Jika anda mau jadi ‘Squid ekstrimis’, ya pakai saja off-line mode. Artinya Squid
tidak akan perduli object2-nya valid atau tidak, kedaluarsa atau tidak, semuanya
akan dipaksa disimpan (sama kalau di browser IE mode offline).
Saya jamin kecepatan Squid anda akan tinggi dg hit rate tinggi dan bw anda
sangat irit pula tetapi paling sebentar saja akan diprotes oleh user2 anda,
Memang sudah ada beberapa usaha supaya ‘pragma no-cache’ ini tidak mdj
halangan halaman2 utk di’cache’ kan dg cara halamannya di’rewrite’ (tulis ulang)
dan menghilangkan opsi di atas tsb. Tetapi dari sisi legalitasnya bagaimana?
Ada yg mengatakan, lha saya yg mengakses dan membutuhkan kok tidak boleh
di’cache’? Tapi dari sisi penyedianya mengatakan, lha kalau tidak mau mengikuti
yg saya inginkan ya jangan mengakses situs saya kan?? Jadi artinya
di sini jika sudah diberi ‘pagar’ atau ‘pengumuman’ ya mestinya harus diikuti
aturannya, jangan terus malah dilanggar
Ini opsi-2 konfigurasi utk kompilasi Squid khusus utk Linux.
./configure
–enable-gnuregex
–enable-async-io=24
–with-aufs-threads=24
–with-pthreads
–with-aio
–with-dl
–enable-storeio=aufs
–enable-removal-policies=heap
–enable-icmp
–enable-delay-pools
–disable-wccp
–enable-snmp
–enable-cache-digests
–enable-default-err-languages=English
–enable-err-languages=English
–enable-linux-netfilter
–disable-ident-lookups
–disable-hostname-checks
–enable-underscores
Silahkan disesuaikan
## Jika ada beberapa situs terdekat yg mungkin hanya 1 hop, di-by pass saja
supaya kerja Squid benar-benar utk yg jaraknya jauh
## 1. Situs-situs yg membutuhkan login di-’direct’ via always_direct dan jangan
disimpan via hierarchy_stoplist cgi-bin ? namasitus dan acl QUERY
urlpath_regex cgi-bin ? namasitus. Diusahakan namasitus sangat spesific
soalnya jika misalnya hanya yahoo.com ya semua yahoo.com akan kena alias
mem-’by-pass’ Squid. Jadi bisa misalnya mail.yahoo.com saja.
2. Via hierarchy_stoplist cgi-bin ? namasitus dan acl QUERY urlpath_regex cgi-bin ?
jika alamat mengandung misalnya halaman2 java applet/script ekstensi .awt, .js, dst-nya.
3. Refresh_pattern minimalnya dikurangi, sekali lagi konfigurasi 180 (atau 3 jam)
bagi beberapa keperluan tidak cocok. Silahkan dicoba misalnya hanya 10 menitan
dan diamati.
4. Terakhir, mungkin ie_refresh harus diaktifkan dan biasanya dg menekan tombol
refresh/reload, Squid akan ‘terpaksa’ memvalidasi halaman tersebut
(bisa beberapa kali refresh/reload terkadang utk proses cek validasi ini).
hierarchy_stoplist cgi-bin ? localhost domain-anda.com isp-anda.com domainku.web.id
acl QUERY urlpath_regex cgi-bin ? localhost domain-anda.com isp-anda.com domainku.web.id
no_cache deny QUERY
## Dari pengalaman 6 MB akan lebih cepat dan biarkan Squid bekerja lebih
keraslagi jika cache_mem diperbesar efeknya adalah pengaksesan obyek lebih
lembam (atau pelan dalam pencarian di mesin lokal, tetapi begitu ketemu ya
cepat aksesnya) dan dg cache_mem 6 MB kita rasakan paling responsif. Dari
banyak forum dan user group rumus umum cache_mem adalah 1/3 atau 1/4 dari
total memori fisik (benar ya?). Tapi default 8 MB saya pikir sudah pas dan
disarankan oleh si Henrik Nordstrom.
Kenapa kok batasan minimum 98 dan maksimum 99 alasannya supaya proses store
and purge obyek tidak sporadis jalannya.
cache_mem 6 MB
cache_swap_low 98
cache_swap_high 99
## Maksimum obyek di hardisk dan di memori diupayakan lebih besar shg byte hit
lebih tinggi (bisa dinaikkan lagi jika hardisk berkecepatan tinggi dan
jumlahnya banyak dg memori yg lebih besar pula)
maximum_object_size 128 MB
maximum_object_size_in_memory 32 KB
## Jika memori 512 MB atau lebih besar silahkan cache diperbesar
ipcache_size 2048
ipcache_low 98
ipcache_high 99
## Utk heap replacement saya memakai LFUDA utk cache hardisk dan GDSF utk cache
memori dg alasan di hardisk diprioritaskan obyek yg ukuran besar-besar dan
di memori obyek yg ukurannya kecil-kecil utk disimpan
cache_replacement_policy heap LFUDA
memory_replacement_policy heap GDSF
## Idealnya ruang di hardisk yg anda pakai hanya sekitar 70% dari total krn
semakin penuh Squid akan semakin pelan mencari tempat kosong, mis. utk cache
1 GB maka yg dipakai hanya 700MB (jangan 1GB dipakai semuanya). Jangan lupa
hanya 1 direktori per drive krn faktor penghambat adalah kecepatan spindle hardisk
lho, bukan terus dg memperbanyak direktori pada 1 hd akan mempercepat
(hd orde milidetik, memori orde nanodetik). Jadi mending hardisknya banyak
tapi ukurannya kecil-kecil daripada hanya 1 berukuran besar. Terus jika OS-nya
Linux pakailah FS-nya Reiser (versi 4 tercepat) dg metode akses aufs. Diskd
optimal di FreeBSD tetapi tidak di Linux lho. Jangan lupa di partisi tsb
noatime dan notail diaktifkan spy tidak menambah ekstra write saat menulis
atau membaca. Intinya hardisk adalah faktor penghambat terbesar di Squid.
## saran kira2 70% dari 16GB
cache_dir aufs /cachez 12000 28 256
atau (utk ruang 4GB-an per hardisk)
cache_dir aufs /cachehardisk1 3000 8 256
cache_dir aufs /cachehardisk2 3000 8 256
cache_dir aufs /cachehardisk3 3000 8 256
cache_dir aufs /cachehardisk4 3000 8 256
atau minimal di bawah ini supaya modifikasi tidak terlalu jauh
cache_dir diskd /cachez 12000 28 256 Q1=72 Q2=88
## Log utk info yg vital saja dan diusahakan file-file log ada di hardisk
tersendiri spy tidak mempengaruhi kecepatan direktori cache utamanya
log_fqdn off
log_icp_queries off
cache_log none
cache_store_log none
## Dg ‘menipu’ dan memaksa sedikit supaya akses obyek lebih intensif di lokal
Squid dan waktu simpan ditambah sebelum proses validasi terjadi (mis. validasi
terjadi per 3 jam dg penyimpanan obyek terlama 3 bulan, utk ftp bisa lebih lama lagi)
refresh_pattern ^ftp: 10080 95% 241920 reload-into-ims override-lastmod
refresh_pattern . 180 95% 120960 reload-into-ims override-lastmod
## Toleransi aborting dihilangkan saja
quick_abort_min 0
quick_abort_max 0
quick_abort_pct 98
## Mematikan dan merekonfigurasi Squid jangan terlalu cepat krn bisa mengakibat
kan integritas file kacau
shutdown_lifetime 10 seconds
## tidak perlu reservasi memori
memory_pools off
## Penting utk relasi dg sibling dg mengukur respons-nya via ICP dan ICMP
(tapi ada isp yg tidak mengijinkan lho)
icp_hit_stale on
query_icmp on
## Penting utk meningkatkan refresh pattern lebih lanjut
reload_into_ims on
pipeline_prefetch on
vary_ignore_expire on
## Sekali lagi Squid diperlukan utk mengambil yg jaraknya jauh, jarak dekat
langsung saja
acl local-dst dst semuaalamatlokal semuaalamatipygdekat
acl local-domain dstdomain localhost domain-anda.com isp-anda.com domainku.web.id
always_direct allow localhost local-dst local-domain
always_direct deny all
## Tidak begitu diperlukan
##ie_refresh on
Contoh Konfigurasi
;—————————————————————————————;
# LOGFILE PATHNAMES AND CACHE DIRECTORIES
# —————————————————————————–
cache_dir diskd /cache/squid 1000 8 256 # << Sesuaikan dengan kebutuhan anda
access_log /cache/access.log squid
cache_log /cache/cache.log
log_fqdn off
buffered_logs off
# OPTIONS FOR TUNING THE CACHE
# —————————————————————————–
refresh_pattern /.gif 4320 50% 43200
refresh_pattern /.jpg 4320 50% 43200
refresh_pattern /.jpeg 4320 50% 43200
refresh_pattern /.png 4320 50% 43200
refresh_pattern ^http://www.friendster.com/.* 720 100% 10080
refresh_pattern ^http://mail.yahoo.com/.* 720 100% 10080
refresh_pattern ^http://*.yahoo.*/.* 720 100% 7200
refresh_pattern ^http://*.google.com/.* 720 100% 10080
refresh_pattern ^http://www.telkomspeedy.com/.* 720 100% 28800
refresh_pattern ^http://*.blogsome.com/.* 720 80% 10080
refresh_pattern ^http://*.wordpress.com/.* 720 80% 10080
refresh-pattern ^http://detik.com/.* 720 90% 2880
refresh_pattern ^ftp: 14400 90% 43200 reload-into-ims
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern . 0 20% 4320 reload-into-ims
quick_abort_min 0 KB
quick_abort_max 0 KB
quick_abort_pct 95
# ACCESS CONTROLS
# —————————————————————————–
acl my_network src 192.168.1.0/24
acl SSL_ports port 443 563
#acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 443 563 # https
#acl Safe_ports port 488 # gss-http
#acl Safe_ports port 591 # filemaker
#acl Safe_ports port 777 # multiling http
http_access allow manager localhost my_network
http_access allow my_network
acl download url_regex -i .mp3
acl download url_regex -i .3gp
acl download url_regex -i .avi
acl download url_regex -i .mpg
acl download url_regex -i .mpeg
acl download url_regex -i .wav
acl download url_regex -i .flv
acl download url_regex -i .swf
# DELAY POOL PARAMETERS (all require DELAY_POOLS compilation option)
# —————————————————————————–
delay_pools 2
delay_class 1 3
delay_parameters 1 -1/-1 -1/-1 8000/8000
delay_access 1 allow my_network download
delay_access 1 deny all
delay_class 2 2
delay_parameters 2 -1/-1 -1/-1
delay_access 2 allow my_network
delay_access 2 deny all
# ADMINISTRATIVE PARAMETERS
# —————————————————————————–
cache_effective_user squid
# MISCELLANEOUS
# —————————————————————————–
logfile_rotate 5
reload_into_ims on
store_dir_select_algorithm round-robin
# ADMINISTRATIVE PARAMETERS
# —————————————————————————–
cache_mgr youremail@host.com
visible_hostname localhost