Membatasi Download pada Squid

Membatasi Download pada Squid
Dalam pengelolaan bandwidth, terutama yang bandwidthnya terbatas, maka pembatasan download sangat diperlukan.
Dengan squid pembatasan dapat dilakukan dengan bebarapa cara. Dalam bahasan ini akan dibahas dua hal saja yaitu :
1. Membatasi besarnya file yang boleh di download
Misalnya tidak boleh download dengan fle ukuran 650MB (satu CD)
ini dapat dilakukan dengan menambahkan tag reply_body_max_size
# Filter Download
acl download url_regex -i ftp .exe .mp3 .vqf .tar.gz .gz .tar .rpm .zip .rar .avi .mpeg .mpe .mpg .qt .ram .rm .iso .raw .wav .mov .msi .mp4

#  TAG: reply_body_max_size     bytes allow|deny acl acl…
#       This option specifies the maximum size of a reply body in bytes.
#       It can be used to prevent users from downloading very large files,
#       such as MP3’s and movies. When the reply headers are received,
#       the reply_body_max_size lines are processed, and the first line with
#       a result of “allow” is used as the maximum body size for this reply.
#       This size is checked twice. First when we get the reply headers,
#       we check the content-length value.  If the content length value exists
#       and is larger than the allowed size, the request is denied and the
#       user receives an error message that says “the request or reply
#       is too large.” If there is no content-length, and the reply
#       size exceeds this limit, the client’s connection is just closed
#       and they will receive a partial reply.
#
#       WARNING: downstream caches probably can not detect a partial reply
#       if there is no content-length header, so they will cache
#       partial responses and give them out as hits.  You should NOT
#       use this option if you have downstream caches.
#
#       If you set this parameter to zero (the default), there will be
#       no limit imposed.
#
#Default:
# reply_body_max_size 0 allow all
reply_body_max_size 6500000000 allow download
2. Cara yang kedua dengan cara membatasi download dengan memperlambat atau shaping paket yang dilewatkan. Misalnya badwidth yang tersedia 256kbps, dimana saat download bisa rata-rata 30KBps.
Akan dibuat aturan sebagai berikut :
a. Untuk browsing biasa tidak ada pembatasan
b. Untuk download dengan ukuran dibawah 1MB tidak ada pembatasan kecepatan
c. Untuk download dengan ukuran diatas 1MB dibatasi dengan kecepatan 10 byte / detik
# Filter Download
acl download url_regex -i ftp .exe .mp3 .vqf .tar.gz .gz .tar .rpm .zip .rar .avi .mpeg .mpe .mpg .qt .ram .rm .iso .raw .wav .mov .msi .mp4
# dibuat 2 aturan
delay_pools 2
# aturan 1, tidak ada pembatasan
delay_class 1 2
delay_parameters 1 -1/-1 -1/-1

# aturan 2, setelah download 2048000 bytes mk download menjadi 10000 bytes/s
delay_class 2 2
delay_parameters 2 -1/2048000 10000/2049000

delay_access 2 allow download
delay_access 2 deny all
delay_access 1 deny download
delay_access 1 allow all
Sumber http://kusprayitna.staff.uii.ac.id/ 2008/ 12/ 11/ membatasi-download-pada-squid/
Dalam pengelolaan bandwidth, terutama yang bandwidthnya terbatas, maka pembatasan download sangat diperlukan.
Dengan squid pembatasan dapat dilakukan dengan bebarapa cara. Dalam bahasan ini akan dibahas dua hal saja yaitu :
1. Membatasi besarnya file yang boleh di download
Misalnya tidak boleh download dengan fle ukuran 650MB (satu CD)
ini dapat dilakukan dengan menambahkan tag reply_body_max_size
# Filter Download
acl download url_regex -i ftp .exe .mp3 .vqf .tar.gz .gz .tar .rpm .zip .rar .avi .mpeg .mpe .mpg .qt .ram .rm .iso .raw .wav .mov .msi .mp4

#  TAG: reply_body_max_size     bytes allow|deny acl acl…
#       This option specifies the maximum size of a reply body in bytes.
#       It can be used to prevent users from downloading very large files,
#       such as MP3’s and movies. When the reply headers are received,
#       the reply_body_max_size lines are processed, and the first line with
#       a result of “allow” is used as the maximum body size for this reply.
#       This size is checked twice. First when we get the reply headers,
#       we check the content-length value.  If the content length value exists
#       and is larger than the allowed size, the request is denied and the
#       user receives an error message that says “the request or reply
#       is too large.” If there is no content-length, and the reply
#       size exceeds this limit, the client’s connection is just closed
#       and they will receive a partial reply.
#
#       WARNING: downstream caches probably can not detect a partial reply
#       if there is no content-length header, so they will cache
#       partial responses and give them out as hits.  You should NOT
#       use this option if you have downstream caches.
#
#       If you set this parameter to zero (the default), there will be
#       no limit imposed.
#
#Default:
# reply_body_max_size 0 allow all
reply_body_max_size 6500000000 allow download
2. Cara yang kedua dengan cara membatasi download dengan memperlambat atau shaping paket yang dilewatkan. Misalnya badwidth yang tersedia 256kbps, dimana saat download bisa rata-rata 30KBps.
Akan dibuat aturan sebagai berikut :
a. Untuk browsing biasa tidak ada pembatasan
b. Untuk download dengan ukuran dibawah 1MB tidak ada pembatasan kecepatan
c. Untuk download dengan ukuran diatas 1MB dibatasi dengan kecepatan 10 byte / detik
# Filter Download
acl download url_regex -i ftp .exe .mp3 .vqf .tar.gz .gz .tar .rpm .zip .rar .avi .mpeg .mpe .mpg .qt .ram .rm .iso .raw .wav .mov .msi .mp4
# dibuat 2 aturan
delay_pools 2
# aturan 1, tidak ada pembatasan
delay_class 1 2
delay_parameters 1 -1/-1 -1/-1

# aturan 2, setelah download 2048000 bytes mk download menjadi 10000 bytes/s
delay_class 2 2
delay_parameters 2 -1/2048000 10000/2049000

delay_access 2 allow download
delay_access 2 deny all
delay_access 1 deny download
delay_access 1 allow all

Tunning Up Request Hit Squid

Tunning Up Request Hit Squid
Meningkatkan Request Hit Squid
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 # <<>
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

Ref : http://arsynetwork.blogspot.com/2010/04/tuning-request-hit-squid.html

Load Balance menggunakan Metode PCC

Load Balance menggunakan Metode PCC
Load balance pada mikrotik adalah teknik untuk mendistribusikan beban trafik pada dua atau lebih jalur koneksi secara seimbang, agar trafik dapat berjalan optimal, memaksimalkan throughput, memperkecil waktu tanggap dan menghindari overload pada salah satu jalur koneksi.
Selama ini banyak dari kita yang beranggapan salah, bahwa dengan menggunakan loadbalance dua jalur koneksi , maka besar bandwidth yang akan kita dapatkan menjadi dua kali lipat dari bandwidth sebelum menggunakan loadbalance (akumulasi dari kedua bandwidth tersebut). Hal ini perlu kita perjelas dahulu, bahwa loadbalance tidak akan menambah besar bandwidth yang kita peroleh, tetapi hanya bertugas untuk membagi trafik dari kedua bandwidth tersebut agar dapat terpakai secara seimbang.
Dengan artikel ini, kita akan membuktikan bahwa dalam penggunaan loadbalancing tidak seperti rumus matematika 512 + 256 = 768, akan tetapi 512 + 256 = 512 + 256, atau 512 + 256 = 256 + 256 + 256.
Pada artikel ini kami menggunakan RB433UAH dengan kondisi sebagai berikut :
1.    Ether1 dan Ether2 terhubung pada ISP yang berbeda dengan besar bandwdith yang berbeda. ISP1 sebesar 512kbps dan ISP2 sebesar 256kbps.
2.    Kita akan menggunakan web-proxy internal dan menggunakan openDNS.
3.    Mikrotik RouterOS anda menggunakan versi 4.5  karena fitur PCC mulai dikenal pada versi 3.24.
Jika pada kondisi diatas berbeda dengan kondisi jaringan ditempat anda, maka konfigurasi yang akan kita jabarkan disini harus anda sesuaikan dengan konfigurasi untuk jaringan ditempat anda.
Konfigurasi Dasar
Berikut ini adalah Topologi Jaringan dan IP address yang akan kita gunakan

/ip address
add address=192.168.101.2/30 interface=ether1
add address=192.168.102.2/30 interface=ether2
add address=10.10.10.1/24 interface=wlan2
/ip dns
set allow-remote-requests=yes primary-dns=208.67.222.222 secondary-dns=208.67.220.220
Untuk koneksi client, kita menggunakan koneksi wireless pada wlan2 dengan range IP client 10.10.10.2 s/d 10.10.10.254 netmask 255.255.255.0, dimana IP 10.10.10.1 yang dipasangkan pada wlan2 berfungsi sebagai gateway dan dns server dari client. Jika anda menggunakan DNS dari salah satu isp anda, maka akan ada tambahan mangle yang akan kami berikan tanda tebal
Setelah pengkonfigurasian IP dan DNS sudah benar, kita harus memasangkan default route ke masing-masing IP gateway ISP kita agar router meneruskan semua trafik yang tidak terhubung padanya ke gateway tersebut. Disini kita menggunakan fitur check-gateway berguna jika salah satu gateway kita putus, maka koneksi akan dibelokkan ke gateway lainnya.
/ip route
add dst-address=0.0.0.0/0 gateway=192.168.101.1 distance=1 check-gateway=ping
add dst-address=0.0.0.0/0 gateway=192.168.102.1 distance=2 check-gateway=ping
Untuk pengaturan Access Point sehingga PC client dapat terhubung dengan wireless kita, kita menggunakan perintah
/interface wireless
set wlan2 mode=ap-bridge band=2.4ghz-b/g ssid=Mikrotik disabled=no
Agar pc client dapat melakukan koneksi ke internet, kita juga harus merubah IP privat client ke IP publik yang ada di interface publik kita yaitu ether1 dan ether2.
/ip firewall nat
add action=masquerade chain=srcnat out-interface=ether1
add action=masquerade chain=srcnat out-interface=ether2
Sampai langkah ini, router dan pc client sudah dapat melakukan koneksi internet. Lakukan ping baik dari router ataupun pc client ke internet. Jika belum berhasil, cek sekali lagi konfigurasi anda.
Webproxy Internal
Pada routerboard tertentu, seperti RB450G, RB433AH, RB433UAH, RB800 dan RB1100 mempunyai expansion slot (USB, MicroSD, CompactFlash) untuk storage tambahan. Pada contoh berikut, kita akan menggunakan usb flashdisk yang dipasangkan pada slot USB. Untuk pertama kali pemasangan, storage tambahan ini akan terbaca statusnya invalid di /system store. Agar dapat digunakan sebagai media penyimpan cache, maka storage harus diformat dahulu dan diaktifkan Nantinya kita tinggal mengaktifkan webproxy dan set cache-on-disk=yes untuk menggunakan media storage kita. Jangan lupa untuk membelokkan trafik HTTP (tcp port 80) kedalam webproxy kita.
/store disk format-drive usb1
/store
add disk=usb1 name=cache-usb type=web-proxy
activate cache-usb /ip proxy
set cache-on-disk=yes enabled=yes max-cache-size=200000KiB port=8080
/ip firewall nat
add chain=dstnat protocol=tcp dst-port=80 in-interface=wlan2 action=redirect to-ports=8080
Pengaturan Mangle
Pada loadbalancing kali ini kita akan menggunakan fitur yang disebut PCC (Per Connection Classifier). Dengan PCC kita bisa mengelompokan trafik koneksi yang melalui atau keluar masuk router menjadi beberapa kelompok. Pengelompokan ini bisa dibedakan berdasarkan src-address, dst-address, src-port dan atau dst-port. Router akan mengingat-ingat jalur gateway yang dilewati diawal trafik koneksi, sehingga pada paket-paket selanjutnya yang masih berkaitan dengan koneksi awalnya akan dilewatkan  pada jalur gateway yang sama juga. Kelebihan dari PCC ini yang menjawab banyaknya keluhan sering putusnya koneksi pada teknik loadbalancing lainnya sebelum adanya PCC karena perpindahan gateway..
Sebelum membuat mangle loadbalance, untuk mencegah terjadinya loop routing pada trafik, maka semua trafik client yang menuju network yang terhubung langsung dengan router, harus kita bypass dari loadbalancing. Kita bisa membuat daftar IP yang masih dalam satu network router dan  memasang mangle pertama kali sebagai berikut
/ip firewall address-list
add address=192.168.101.0/30 list=lokal
add address=192.168.102.0/30 list=lokal
add address=10.10.10.0/24 list=lokal /ip firewall mangle
add action=accept chain=prerouting dst-address-list=lokal in-interface=wlan2 comment=”trafik lokal”
add action=accept chain=output dst-address-list=lokal
Pada kasus tertentu, trafik pertama bisa berasal dari Internet, seperti penggunaan remote winbox atau telnet dari internet dan sebagainya, oleh karena itu kita juga memerlukan mark-connection untuk menandai trafik tersebut agar trafik baliknya juga bisa melewati interface dimana trafik itu masuk
/ip firewall mangle
add action=mark-connection chain=prerouting connection-mark=no-mark in-interface=ether1 new-connection-mark=con-from-isp1 passthrough=yes comment=”trafik dari isp1”
add action=mark-connection chain=prerouting connection-mark=no-mark in-interface=ether2 new-connection-mark=con-from-isp2 passthrough=yes comment=”trafik dari isp2”
Umumnya, sebuah ISP akan membatasi akses DNS servernya dari IP yang hanya dikenalnya, jadi jika anda menggunakan DNS dari salah satu ISP anda, anda harus menambahkan mangle agar trafik DNS tersebut melalui gateway ISP yang bersangkutan bukan melalui gateway ISP lainnya. Disini kami berikan mangle DNS ISP1 yang melalui gateway ISP1. Jika anda menggunakan publik DNS independent, seperti opendns, anda tidak memerlukan mangle dibawah ini.
/ip firewall mangle
add action=mark-connection chain=output comment=dns dst-address=202.65.112.21 dst-port=53 new-connection-mark=dns passthrough=yes protocol=tcp comment=”trafik DNS citra.net.id”
add action=mark-connection chain=output dst-address=202.65.112.21 dst-port=53 new-connection-mark=dns passthrough=yes protocol=udp
add action=mark-routing chain=output connection-mark=dns new-routing-mark=route-to-isp1 passthrough=no
Karena kita menggunakan webproxy pada router, maka trafik yang perlu kita loadbalance ada 2 jenis. Yang pertama adalah trafik dari client menuju internet (non HTTP), dan trafik dari webproxy menuju internet. Agar lebih terstruktur dan mudah dalam pembacaannya, kita akan menggunakan custom-chain sebagai berikut :
/ip firewall mangle
add action=jump chain=prerouting comment=”lompat ke client-lb” connection-mark=no-mark in-interface=wlan2 jump-target=client-lb
add action=jump chain=output comment=”lompat ke lb-proxy” connection-mark=no-mark out-interface=!wlan2 jump-target=lb-proxy
Pada mangle diatas, untuk trafik loadbalance client pastikan parameter in-interface adalah interface yang terhubung dengan client, dan untuk trafik loadbalance webproxy, kita menggunakan chain output dengan parameter out-interface yang bukan terhubung ke interface client. Setelah custom chain untuk loadbalancing dibuat, kita bisa membuat mangle di custom chain tersebut sebagai berikut
/ip firewall mangle
add action=mark-connection chain=client-lb dst-address-type=!local new-connection-mark=to-isp1 passthrough=yes per-connection-classifier=both-addresses:3/0 comment=”awal loadbalancing klien”
add action=mark-connection chain=client-lb dst-address-type=!local new-connection-mark=to-isp1 passthrough=yes per-connection-classifier=both-addresses:3/1
add action=mark-connection chain=client-lb dst-address-type=!local new-connection-mark=to-isp2 passthrough=yes per-connection-classifier=both-addresses:3/2
add action=return chain=client-lb comment=”akhir dari loadbalancing” /ip firewall mangle
add action=mark-connection chain=lb-proxy dst-address-type=!local new-connection-mark=con-from-isp1 passthrough=yes per-connection-classifier=both-addresses:3/0 comment=”awal load balancing proxy”
add action=mark-connection chain=lb-proxy dst-address-type=!local new-connection-mark=con-from-isp1 passthrough=yes per-connection-classifier=both-addresses:3/1
add action=mark-connection chain=lb-proxy dst-address-type=!local new-connection-mark=con-from-isp2 passthrough=yes per-connection-classifier=both-addresses:3/2
add action=return chain=lb-proxy comment=”akhir dari loadbalancing”
Untuk contoh diatas, pada loadbalancing client dan webproxy menggunakan parameter pemisahan trafik pcc yang sama, yaitu both-address, sehingga router akan mengingat-ingat berdasarkan src-address dan dst-address dari sebuah koneksi. Karena trafik ISP kita yang berbeda (512kbps dan 256kbps), kita membagi beban trafiknya menjadi 3 bagian. 2 bagian pertama akan melewati gateway ISP1, dan 1 bagian terakhir akan melewati gateway ISP2. Jika masing-masing trafik dari client dan proxy sudah ditandai, langkah berikutnya kita tinggal membuat mangle mark-route yang akan digunakan dalam proses routing nantinya
/ip firewall mangle
add action=jump chain=prerouting comment=”marking route client” connection-mark=!no-mark in-interface=wlan2 jump-target=route-client
add action=mark-routing chain=route-client connection-mark=to-isp1 new-routing-mark=route-to-isp1 passthrough=no
add action=mark-routing chain=route-client connection-mark=to-isp2 new-routing-mark=route-to-isp2 passthrough=no
add action=mark-routing chain=route-client connection-mark=con-from-isp1 new-routing-mark=route-to-isp1 passthrough=no
add action=mark-routing chain=route-client connection-mark=con-from-isp2 new-routing-mark=route-to-isp2 passthrough=no
add action=return chain=route-client disabled=no /ip firewall mangle
add action=mark-routing chain=output comment=”marking route proxy” connection-mark=con-from-isp1 new-routing-mark=route-to-isp1 out-interface=!wlan2 passthrough=no
add action=mark-routing chain=output connection-mark=con-from-isp2 new-routing-mark=route-to-isp2 out-interface=!wlan2 passthrough=no
Pengaturan Routing
Pengaturan mangle diatas tidak akan berguna jika anda belum membuat routing berdasar mark-route yang sudah kita buat. Disini kita juga akan membuat routing backup, sehingga apabila sebuah gateway terputus, maka semua koneksi akan melewati gateway yang masing terhubung
/ip route
add check-gateway=ping dst-address=0.0.0.0/0 gateway=192.168.101.1 routing-mark=route-to-isp1 distance=1
add check-gateway=ping dst-address=0.0.0.0/0 gateway=192.168.102.1 routing-mark=route-to-isp1 distance=2
add check-gateway=ping dst-address=0.0.0.0/0 gateway=192.168.102.1 routing-mark=route-to-isp2 distance=1
add check-gateway=ping dst-address=0.0.0.0/0 gateway=192.168.101.1 routing-mark=route-to-isp2 distance=2

Pengujian
Dari hasil pengujian kami, didapatkan sebagai berikut

Dari gambar terlihat, bahwa hanya dengan melakukan 1 file download (1 koneksi), kita hanya mendapatkan speed 56kBps (448kbps) karena pada saat itu melewati gateway ISP1, sedangkan jika kita mendownload file (membuka koneksi baru) lagi pada web lain, akan mendapatkan 30kBps (240kbps). Dari pengujian ini terlihat dapat disimpulkan bahwa
512kbps + 256kbps ≠ 768kbps
Catatan :
* Loadbalancing menggunakan teknik pcc ini akan berjalan efektif dan mendekati seimbang jika semakin banyak koneksi (dari client) yang terjadi.
* Gunakan ISP yang memiliki bandwith FIX bukan Share untuk mendapatkan hasil yang lebih optimal.
* Load Balance menggunakan PCC ini bukan selamanya dan sepenuhnya sebuah solusi yang pasti berhasil baik di semua jenis network, karena proses penyeimbangan dari traffic adalah berdasarkan logika probabilitas.
By: Pujo Dewobroto (Mikrotik.co.id)

http://www.pasangmikrotik.com/category/load-balancing/

Membatasi Download Dengan Delay Pool di Proxy

Membatasi Download Dengan Delay Pool di Proxy

konfigurasi

File konfigurasi squid adalah squid.conf
ada beberapa tag konfigurasi untuk delay pools di squid.conf.
  1. delay_pools
    menyatakan berapa banyak bagian/pool yang akan dibuat
    misal delay_pools 2
  2. delay_class
    menentukan klas/tipe pembagian bandwith dari setiap pool. 1 pool hanya boleh memiliki 1 clas, tidak lebih atau kurang.
    bagian merupakan nomer urut dari jumlah pool didelay pool, jadi ada 1 s/d n bagian dimana n merupakan angka jumlah pada delay_pools
    tipe merupakan tipe class delay yang dipakai.
    Secara umum tipe menyatakan bagaimana cara membagi bandwidth, ada 3 tipe:
tipe/class keterangan
1 semua bandwidth yang ada akan dibagi sama rata untuk semua user squidex ada bandwidth 128 dan semua bandwith dipakai untuk browsing
2 membatasi pemakaian bandwith dari total bandwidth yang ada, dan bandwith yang diperuntukan squid akan dibagi semua user dengan sama rata.ex ada bandwidth 128 dimana 28 kbit dipakai untuk email dan sisanya (128-28) 100 kbit dipakai untuk browsing
3 membatasi pemakaian bandwidth dari total bandwidth yang ada, setiap network class C akan mendapat bandwidth sama besar, setiap user pernetwork akan mendapat bandwidth yang sama besar dari total bandwidth per networkex: bandwidth tersedia 512 kb, untuk browsing disediakan bandwidth 384 kb, sisanya untuk aktifitas lain.
Di jaringan tersebut ada 3 departement dengan network yang berbeda misal lab (192.168.1.0/24), manajer(192.168.2.0/24), sales(192.168.3.0/24).
nah misah oleh admin di set bahwa pernetwork mendapat jatah 128 kb/s.
maka user� di sales akan mendapat pembagian bandwidth sama besar dari total 128 kb/s.
maka user� di lab akan mendapat pembagian bandwidth sama besar dari total 128 kb/s.
maka user� di manajer akan mendapat pembagian bandwidth sama besar dari total 128 kb/s.
misal:
delay_class 1 2    # pool 1 memakai clas tipe 2
delay_class 2 3    # pool 2 memakai clas tipe 3


  • delay_access
    Memberi batasan siapa saja yang boleh mempergunakan delay pools ini.
    Penting untuk diingat sebaiknya setelah menetukan batasan jangan lupa di akhiri dengan deny all.
    misal:
    delay_access 1 allow manajer
    delay_access 1 deny all
    delay_access 2 allow sales
    delay_access 2 deny all

  • delay_parameters
    Ini adalah bagian terpenting dari delay pools memberikan aturan main setiap delay pools yang dibentuk.
    delay parameter mempunyai format yang disesuaikan dengan tipe/class yang dipakai.
    Tapi disetiap tipe yang dipakai ada 1 format baku yaitu restore/max.restore menunjukkan maksimum kecepatan data yang dapat dilewatkan bila harga max sudah terlampaui, dalam satuan bytes/second max menunjukkan besar-nya file atau bucket yang dapat dilewatkan tanpa melalui proses delay. dalam satuan bytes.
    Yang perlu diperhatikan dari satuan diatas adalah harga restore dimana kita sering menerima/menyewa/membeli bandwidth dari provider dalam satuan bits/second bukan bytes/second. Sedangkan satuan kecepatan yang ditunjukkan oleh Microsoft pada saat mendonlot file adalah bytes/sec.
    Sedangkan satuan dari harga max sudah sesuai dengan kebiasaan sehari-hari, dimana kita memberi besaran bytes pada file-file.
    1 byte = 8 bit.
    SpesialCase: -1/-1 berarti unlimited atau tidak dibatasi pada nilai restore/max
    ex: 1000/64000 harga restore sama dengan 8000 bits/sec atau 8 kbits/sec.
    Yang artinya user akan mendapat donlot brustable selama file yang akan dibuka lebih kecil dari 64 kbytes, jadi kecepatan bisa diatas 8 kbit/sec.
    Bila ternyata file yang dibuka melebihi 64 bytes, maka proses limitasi akan segera dimulai dengan membatasi kecepatan maksimal 8 kbits/s.
    class 1
    delay_parameters <#pool individual> ex: delay_parameters 1 1000/64000 Berarti semua network akan mendapat bandwidth yang sama di pool no 1. Sebesar 1 kbytes/sec (8 kbits/sec), dengan burstable file 64 kb.
    class 2
    delay_parameters <#pool agregate individual> ex: delay_parameters 1 32000/32000 1000/64000 Berarti squid akan memakai bandwidth maksimum (32000*8) 256kbits dari semua bandwidth. Bila terdapat lebih dari 1 network class C, maka total yang dihabiskan tetap 256 kbit/sec dan tiap user akan mendapat bandwidth maksimum 1 kbytes/sec (8 kbits/sec), dengan burstable file 64 kb.
    class 3
    delay_parameters <#pool agregate network individual> ex: delay_parameters 1 32000/32000 8000/8000 1000/64000 Berarti squid akan memakai bandwidth maksimum (32000*8) 256kbits dari semua bandwidth. Bila terdapat lebih dari 1 network class C, maka setiap network akan dipaksa maksimum sebesar (8000*8) 64 kbits/sec dan tiap user pada satu network akan mendapat bandwidth maksimum 1 kbytes/sec (8 kbits/sec), dengan burstable file 64 kb.

  • Contoh 1

    dalam 1 network dengan penggunaan bandwidth total tidak dibatasi terdapat beberapa komputer dengan klasifikasi sebagai berikut
    • admin, server dengan bandwidth unlimited
    • staff dengan bandwidth 1,5 kbytes/sec, bila file yang diakses melebihi 64Kbte
    • umum dengan bandwidth 1 kbytes/sec, bila file yang diakses melebihi 32 Kbyte
    acl all src 0.0.0.0/0.0.0.0
    acl admin src 192.168.1.250/255.255.255.255
    acl server src 192.168.1.251/255.255.255.255
    acl umum src 192.168.1.0/255.255.255.0
    acl staff src 192.168.1.1 192.168.1.111 192.168.1.2 192.168.1.4 192.168.1.71
    
    delay_pools 3
    
    delay_class 1 1
    delay_parameters 1 -1/-1
    delay_access 1 allow admin
    delay_access 1 allow server
    delay_access 1 deny all
    
    delay_class  2 1
    delay_parameters 2 1500/64000
    delay_access 2 allow staf
    delay_access 2 deny all
    
    delay_class  3 1
    delay_parameters 3 1000/32000
    delay_access 3 allow umum
    delay_access 3 deny all
    Cara mencobanya paling mudah adalah dengan menggunakan donlot manajer semacam DAP, GetRight maka akan terlihat bandwidth sudah dibatasi.

    Contoh 2

    Delay pools juga dapat digunakan untuk membatasi donlot file untuk extensi tertentu.
    Gunakan ACL url_regex untuk mengatasi hal ini.
    Contoh dibawah digunakan untuk membatasi donlot file multimedia hingga 1 kByte/sec.
    acl multimedia url_regex -i \.mp3$ \.rm$ \.mpg$ \.mpeg$ \.avi$ \.dat$
    delay_pools 1
    delay_class 1 1
    delay_parameters 1 1000/16000
    delay_access 1 allow multimedia
    delay_access 1 deny ALL

    Contoh 3 dari forum.linux.or.id

    bagaimana caranya membuat delay pools untuk membatasi download di siang hari untuk 15 klient sedangkan malam harinya lost asumsi jamnya ( 10:00 - 21:00)
    acl LTIME time SMTWHFA 10:00-21:00
    
    acl download url_regex -i ftp \.exe$ \.mp3$ \.mp4$ \.tar.gz$ \.gz$ \.tar.bz2$ \.rpm$ \.zip$ \.rar$
    acl download url_regex -i \.avi$ \.mpg$ \.mpeg$ \.rm$ \.iso$ \.wav$ \.mov$ \.dat$ \.mpe$ \.mid$
    acl download url_regex -i \.midi$ \.rmi$ \.wma$ \.wmv$ \.ogg$ \.ogm$ \.m1v$ \.mp2$ \.mpa$ \.wax$
    acl download url_regex -i \.m3u$ \.asx$ \.wpl$ \.wmx$ \.dvr-ms$ \.snd$ \.au$ \.aif$ \.asf$ \.m2v$
    acl download url_regex -i \.m2p$ \.ts$ \.tp$ \.trp$ \.div$ \.divx$ \.mod$ \.vob$ \.aob$ \.dts$
    acl download url_regex -i \.ac3$ \.cda$ \.vro$ \.deb$
    
    delay_pools 1
    
    delay_class 1 1
    delay_parameters 1 3000/3000
    delay_access 1 allow download TIME
    delay_access 1 deny all

    Contoh 4

    Mulyo Wardoyo
    Bagaimana caranya membuat delay pools untuk membatasi download di siang hari dengan speed … dan malam hari dengan speed …, abis si bozz malem-nya mau pakai buat dolot.
    Jadi pengennya pas malam bw buat user makin kecil, bukan malah di loss
    acl JAM_KANTOR time SMTWHFA 07:00-18:00 
    
    delay_pools 2 delay_class 1 2
    delay_parameters 1 24000/32000 -1/-1
    delay_access 1 allow riset JAM_KANTOR
    delay_access 1 deny all 
    
    delay_class 1 2
    delay_parameters 2 8000/8000 -1/-1
    delay_access 2 allow riset !JAM_KANTOR
    delay_access 2 deny all

    Contoh 5

    wangsit masterpop3 yang semedi dengan pecelpenyu.
    Saya ada bandwidth besar, 1mbps.
    Ingin membatasi yang donlot file besar di atas 5mbyte, di beri speed 32kbps.
    Misal bila ada 3 user yang donlot, tiap-tiap user akan mendapat bw maximal 32kbps.
    acl user src 192.168.1.0/24
    
    delay_pools 1
    delay_class 1 2
    delay_parameters 1 40000/10000000 4000/5000000
    delay_access 1 allow user download
    delay_access 1 deny ALL

    Contoh 6 limit youtube

    duppeh, untuk memaksa caching terhadap youtube ( sesuai wiki.squid-cache.org )
    acl youtube dstdomain -i .youtube.com
    acl striming url_regex -i get_video\?video_id videodownload\?
    cache allow youtube
    cache allow striming
    dan harap di ingat untuk posisi tsb di atas sebaiknya diletakkan sebelum hierarchy_stoplist
    kemudian bisa di gabung ke delay_pool juga
    delay_class 2 3
    delay_access 2 allow warnet striming
    delay_access 2 deny all
    delay_parameters 2 -1/-1 -1/-1 3000/200000
    hasilnya :
    Connection: 0x7f1da510
       FD 149, read 555, wrote 6508975
       FD desc: http://ash-v97.ash.youtube.com/get_video?video_id=YXF72VCyt5M
       in: buf 0x7fe65000, offset 0, size 4096
       peer: 192.168.0.111:3317
       me: 127.0.0.1:3127
       nrequests: 1
       defer: n 0, until 0
    uri http://ash-v97.ash.youtube.com/get_video?video_id=YXF72VCyt5M
    log_type TCP_MISS
    out.offset 6508872, out.size 6508975
    req_sz 555
    entry 0x7d24e240/599CDB16D8D8DCB1395E960CD807BD8B
    old_entry 0x0/N/A
    start 1193286572.113589 (2131.525289 seconds ago)
    username -
    delay_pool 2 <= terkena delay
    untuk delay_pool saya tidak menggunakan domain youtube.com, karena ternyata untuk url streaming nya sebagian hanya menggunakan ip address biasa, sehingga menggunakan regex spt di atas saya rasa lebih efektif.
    silakan di eksperimen sendiri untuk regex nya, bisa dg menganalisa access.log atau kalau yg gampang menggunakan sqstat spt yg pernah di post di thread sebelah.

    Ref : http://oktobrima.staff.uns.ac.id/?p=59

    Meningkatkan Performa SQUID

    Meningkatkan Performa SQUID
    Hasil kumpulan dari pengalaman-pengalaman untuk mengoptimalkan kerja proxy server (SQUID), InsyaAllah SQUID akan bekerja lebih cepat dengan hit ratio lebih dari 50%.## Jika ada beberapa situs terdekat yg mungkin hanya 1 hop, di-by pass saja supaya kerja Squid benar-benar utk yg jaraknya jauh
    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
    acl langsung dst xxx.xx.xxx.x/xx
    no_cache deny langsung
    dimana :
    dst = IP
    misal 202.95.150.0/29

    ## Dari pengalaman 6 MB akan lebih cepat dan biarkan Squid bekerja lebih keras lagi
    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
    Rumus Squid cache Dir :
    [[[ X/13 ] / 256] / 256] * 2, contoh :
    12.000.000/13 = 923076,9 / 256 = 3605,8 / 256 = 14 * 2 = 28


    ## 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 mengakibatkan 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 (dengan syarat mesin sibling/parent tsb diijinkan untuk menerima ICMP)
    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


    Sbg penutup ada beberapa lagi utk sedikit menaikkan kinerjanya Squid lagi.
    1. Naikkan prioritas Squid via nice --20 (-20 tertinggi, terserah dinaikkan sampai berapa, intinya supaya diproses dg prioritas lebih tinggi dibanding daemon yg lain, default prio=0). Mis. startup skrip: /usr/bin/nice -n --20 squid -DNY ....
    2. Naikkan batasan FD (file deskriptor) juga saat startup: ulimit -HSn 8192
    3. Bukalah sebanyak mungkin port utk akses keluar (bukan ke dalam lho): echo 1024 32768 > /proc/sys/net/ipv4/ip_local_port_range.


    Ref: http://asadim.blogspot.com/2006/06/meningkatkan-performa-squid.html

    Meningkatkan Performa SQUID

    Meningkatkan Performa SQUID
    Hasil kumpulan dari pengalaman-pengalaman untuk mengoptimalkan kerja proxy server (SQUID), InsyaAllah SQUID akan bekerja lebih cepat dengan hit ratio lebih dari 50%.## Jika ada beberapa situs terdekat yg mungkin hanya 1 hop, di-by pass saja supaya kerja Squid benar-benar utk yg jaraknya jauh
    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
    acl langsung dst xxx.xx.xxx.x/xx
    no_cache deny langsung
    dimana :
    dst = IP
    misal 202.95.150.0/29

    ## Dari pengalaman 6 MB akan lebih cepat dan biarkan Squid bekerja lebih keras lagi
    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
    Rumus Squid cache Dir :
    [[[ X/13 ] / 256] / 256] * 2, contoh :
    12.000.000/13 = 923076,9 / 256 = 3605,8 / 256 = 14 * 2 = 28


    ## 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 mengakibatkan 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 (dengan syarat mesin sibling/parent tsb diijinkan untuk menerima ICMP)
    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


    Sbg penutup ada beberapa lagi utk sedikit menaikkan kinerjanya Squid lagi.
    1. Naikkan prioritas Squid via nice --20 (-20 tertinggi, terserah dinaikkan sampai berapa, intinya supaya diproses dg prioritas lebih tinggi dibanding daemon yg lain, default prio=0). Mis. startup skrip: /usr/bin/nice -n --20 squid -DNY ....
    2. Naikkan batasan FD (file deskriptor) juga saat startup: ulimit -HSn 8192
    3. Bukalah sebanyak mungkin port utk akses keluar (bukan ke dalam lho): echo 1024 32768 > /proc/sys/net/ipv4/ip_local_port_range.


    Ref: http://asadim.blogspot.com/2006/06/meningkatkan-performa-squid.html

    Meningkatkan Performa SQUID

    Hasil kumpulan dari pengalaman-pengalaman untuk mengoptimalkan kerja proxy server (SQUID), InsyaAllah SQUID akan bekerja lebih cepat dengan hit ratio lebih dari 50%.## Jika ada beberapa situs terdekat yg mungkin hanya 1 hop, di-by pass saja supaya kerja Squid benar-benar utk yg jaraknya jauh
    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
    acl langsung dst xxx.xx.xxx.x/xx
    no_cache deny langsung
    dimana :
    dst = IP
    misal 202.95.150.0/29

    ## Dari pengalaman 6 MB akan lebih cepat dan biarkan Squid bekerja lebih keras lagi
    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
    Rumus Squid cache Dir :
    [[[ X/13 ] / 256] / 256] * 2, contoh :
    12.000.000/13 = 923076,9 / 256 = 3605,8 / 256 = 14 * 2 = 28


    ## 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 mengakibatkan 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 (dengan syarat mesin sibling/parent tsb diijinkan untuk menerima ICMP)
    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


    Sbg penutup ada beberapa lagi utk sedikit menaikkan kinerjanya Squid lagi.
    1. Naikkan prioritas Squid via nice --20 (-20 tertinggi, terserah dinaikkan sampai berapa, intinya supaya diproses dg prioritas lebih tinggi dibanding daemon yg lain, default prio=0). Mis. startup skrip: /usr/bin/nice -n --20 squid -DNY ....
    2. Naikkan batasan FD (file deskriptor) juga saat startup: ulimit -HSn 8192
    3. Bukalah sebanyak mungkin port utk akses keluar (bukan ke dalam lho): echo 1024 32768 > /proc/sys/net/ipv4/ip_local_port_range.

    Meningkatkan Performa SQUID

    Meningkatkan Performa SQUID
    Hasil kumpulan dari pengalaman-pengalaman untuk mengoptimalkan kerja proxy server (SQUID), InsyaAllah SQUID akan bekerja lebih cepat dengan hit ratio lebih dari 50%.## Jika ada beberapa situs terdekat yg mungkin hanya 1 hop, di-by pass saja supaya kerja Squid benar-benar utk yg jaraknya jauh
    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
    acl langsung dst xxx.xx.xxx.x/xx
    no_cache deny langsung
    dimana :
    dst = IP
    misal 202.95.150.0/29

    ## Dari pengalaman 6 MB akan lebih cepat dan biarkan Squid bekerja lebih keras lagi
    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
    Rumus Squid cache Dir :
    [[[ X/13 ] / 256] / 256] * 2, contoh :
    12.000.000/13 = 923076,9 / 256 = 3605,8 / 256 = 14 * 2 = 28


    ## 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 mengakibatkan 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 (dengan syarat mesin sibling/parent tsb diijinkan untuk menerima ICMP)
    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


    Sbg penutup ada beberapa lagi utk sedikit menaikkan kinerjanya Squid lagi.
    1. Naikkan prioritas Squid via nice --20 (-20 tertinggi, terserah dinaikkan sampai berapa, intinya supaya diproses dg prioritas lebih tinggi dibanding daemon yg lain, default prio=0). Mis. startup skrip: /usr/bin/nice -n --20 squid -DNY ....
    2. Naikkan batasan FD (file deskriptor) juga saat startup: ulimit -HSn 8192
    3. Bukalah sebanyak mungkin port utk akses keluar (bukan ke dalam lho): echo 1024 32768 > /proc/sys/net/ipv4/ip_local_port_range.


    Ref: http://asadim.blogspot.com/2006/06/meningkatkan-performa-squid.html

    Meningkatkan Performa SQUID

    Hasil kumpulan dari pengalaman-pengalaman untuk mengoptimalkan kerja proxy server (SQUID), InsyaAllah SQUID akan bekerja lebih cepat dengan hit ratio lebih dari 50%.## Jika ada beberapa situs terdekat yg mungkin hanya 1 hop, di-by pass saja supaya kerja Squid benar-benar utk yg jaraknya jauh
    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
    acl langsung dst xxx.xx.xxx.x/xx
    no_cache deny langsung
    dimana :
    dst = IP
    misal 202.95.150.0/29

    ## Dari pengalaman 6 MB akan lebih cepat dan biarkan Squid bekerja lebih keras lagi
    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
    Rumus Squid cache Dir :
    [[[ X/13 ] / 256] / 256] * 2, contoh :
    12.000.000/13 = 923076,9 / 256 = 3605,8 / 256 = 14 * 2 = 28


    ## 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 mengakibatkan 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 (dengan syarat mesin sibling/parent tsb diijinkan untuk menerima ICMP)
    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


    Sbg penutup ada beberapa lagi utk sedikit menaikkan kinerjanya Squid lagi.
    1. Naikkan prioritas Squid via nice --20 (-20 tertinggi, terserah dinaikkan sampai berapa, intinya supaya diproses dg prioritas lebih tinggi dibanding daemon yg lain, default prio=0). Mis. startup skrip: /usr/bin/nice -n --20 squid -DNY ....
    2. Naikkan batasan FD (file deskriptor) juga saat startup: ulimit -HSn 8192
    3. Bukalah sebanyak mungkin port utk akses keluar (bukan ke dalam lho): echo 1024 32768 > /proc/sys/net/ipv4/ip_local_port_range.

    Mengganti Localtime Distro Ubuntu Server

    Mengganti Localtime Distro Ubuntu Server
    Cek tips ini,

    Contoh, ingin mengubah jam server Anda menjadi bulan 11 Juli, jam 16:30. MM kita isi dengan 07 (bulan ke tujuh), DD kita isi dengan 11 (tanggal 11), dan hh kita isi dengan 16 (jam 16), dan mm kita isi dengan 30 (menit ke 30).
    # date 07111630
    Bagaimana kalau beda jamnya sampai beda tahun? Sama seperti tadi, cuma diujung tambahkan dua digit tahun. ketikkan date lalu diikuti MMDDhhmmYY.
    Misal, kita ingin mengubah jadi 11 Juli 2009, jam 16:30
    # date 0711163009

    perintah date hanya akan berlaku sekali reboot saja, maksudnya settingan setelah reboot akan balik ke setting default dan berdasarkan NTP Server kalo sudah diset.


    Langkah yang disarankan :

    if you want to set up it to WIT (Asia/Jakarta):

    # ln -sf /usr/share/zoneinfo/Asia/Jakarta /etc/localtime

     Instal NTP Server di ubuntu : apt-get install ntp
    Untuk NTP Server sebenarnya sudah diset ke:

    server 202.160.128.6
    server 202.169.224.16
    server ntp.kim.lipi.go.id

    Edit file bagian ini :
    /etc/default/rcS
    Cari bagian UTC=no ganti dengan UTC=Yes

    SquidClient untuk menampilkan Report Proxy

    SquidClient untuk menampilkan Report Proxy

    Buat temen2 yang sering pake proxy tapi belum begitu expert, sering bingung bagaimana sih cara melihat performa proxy anda, udah berapa yang ke-hit , berapa orang yang mengakses cache anda . Nah dengan tools kecil ini, semua masalah tentang proxy report bisa diatasi meskipun hanya dengan layar console :D
    Cara installnya gampang.
    1.  Pastikan anda terkoneksi dengan internet ,
    2. Masuk ke layar console proxy anda kemudian ketikan perintah perintah berikut
    sudo apt-get install squidclient
    1
    Nah kalo sudah keinstall pake cara ini untuk lihat reportnya
    Squidclient –p 3128 mgr:info
    33
    -p maksudnya adalah port yang digunakan , kalo pada proksi kami pake port 3128, kaloanda bisa berkreasi, pake port lain gak masalah. :)
    ini contoh hasil report proxy saya
    pai@pai:~$ squidclient -p 3128 mgr:info
    HTTP/1.0 200 OK
    Server:  squid/2.7.STABLE6
    Date: Thu, 10 Jun 2010 12:01:04 GMT
    Content-Type:  text/plain
    Expires: Thu, 10 Jun 2010 12:01:04 GMT
    X-Cache: MISS  from pai
    X-Cache-Lookup: MISS from pai:3128
    Via: 1.0 pai:3128  (squid/2.7.STABLE6)
    Connection: close

    Squid Object Cache:  Version 2.7.STABLE6
    Start Time:     Thu, 10 Jun 2010 05:46:25 GMT
    Current  Time:   Thu, 10 Jun 2010 12:01:04 GMT
    Connection information for  squid:
    Number of clients accessing cache:      2
    Number of HTTP  requests received:       131186
    Number of ICP messages  received:        0
    Number of ICP messages sent:    0
    Number of  queued ICP replies:   0
    Number of HTCP messages received:       0
    Number of HTCP messages sent:   0
    Request failure ratio:   0.00
    Average HTTP requests per minute since start:   350.2
    Average ICP  messages per minute since start:    0.0
    Select loop called: 1502314  times, 14.963 ms avg
    Cache information for squid:
    Request Hit  Ratios:     5min: 25.7%, 60min: 21.5%
    Byte Hit Ratios:        5min:  28.8%, 60min: 13.4%
    Request Memory Hit Ratios:      5min: 23.5%,  60min: 7.8%
    Request Disk Hit Ratios:        5min: 40.3%, 60min:  33.1%
    Storage Swap size:      821408 KB
    Storage Mem size:        8156 KB
    Mean Object Size:       11.61 KB
    Requests given to  unlinkd:      19941
    Median Service Times (seconds)  5 min    60 min:
    HTTP Requests (All):   0.68577  0.64968
    Cache Misses:           0.94847  0.89858
    Cache Hits:            0.00091  0.00179
    Near  Hits:             0.12783  0.07409
    Not-Modified Replies:  0.00000   0.00000
    DNS Lookups:           0.02941  0.02941
    ICP  Queries:           0.00000  0.00000
    Resource usage for squid:
    UP  Time:        22478.400 seconds
    CPU Time:       523.885 seconds
    CPU Usage:      2.33%
    CPU Usage, 5 minute avg:        3.74%
    CPU  Usage, 60 minute avg:       3.20%
    Process Data Segment Size via  sbrk(): 23316 KB
    Maximum Resident Size: 0 KB
    Page faults with  physical i/o: 1
    Memory usage for squid via mallinfo():
    Total  space in arena:   23316 KB
    Ordinary blocks:        23211 KB    289  blks
    Small blocks:               0 KB      0 blks
    Holding  blocks:           796 KB      2 blks
    Free Small blocks:          0  KB
    Free Ordinary blocks:     104 KB
    Total in use:            24007 KB 100%
    Total free:               104 KB 0%
    Total  size:             24112 KB
    Memory accounted for:
    Total  accounted:        19012 KB
    memPoolAlloc calls: 19950665
    memPoolFree calls: 19696565
    File descriptor usage for squid:
    Maximum number of file descriptors:   1024
    Largest file desc  currently in use:    356
    Number of file desc currently in use:  282
    Files queued for open:                   0
    Available number of file  descriptors:  742
    Reserved number of file descriptors:   100
    Store Disk files open:                   5
    IO loop  method:                     epoll
    Internal Data Structures:
    70841  StoreEntries
    1507 StoreEntries with MemObjects
    1454 Hot Object  Cache Items
    70739 on-disk objects
    pai@pai:~$
    Sebagai catatan : kami menggunakian ubuntu 9.10 sebagai proxy server



    cache manager nya seperti nya terpasswd
    cb liat di squid.conf ada option ini >>> cachemgr_passwd

    kalo ada misal >>>>> cachemgr_passwd khaira all

    maka  

    squidclient -p 8080 mgr:info@khaira

    untuk melihat performa squid dari penanganan akses user
    squidclient -p 8080 mgr:client_list@khaira 
    Lihat bagian paling bawah :

    TOTALS
    ICP : 0 Queries, 0 Hits (  0%)
    HTTP: 187 Requests, 0 Hits (  92%)  ---> ini merupakan performa squid sebenarnya



    Ref : http://mrifai.info/2010/06/squidclient-untuk-menampilkan-report-proxy/