52
Squid baik yang ter cache maupun yang tidak, maka dengan kata lain
total request adalah jumlah semua baris yang terdapat pada file access.log
.
Seluruh parameter yang dihitung pada penelitian ini disaring agar parameter yang dicatat adalah hanya yang dipakai oleh program Squid saja, tepat
pada saat target hit tercapai.
3.4. Tabel Pengujian
Berikut ini adalah tabel yang akan digunakan untuk pengujian:
Tabel Pengambilan Data Kategori Web: [Statis, Dinamis, Aktif]
Target [10, 20, 30, 40, 50] Pengujian
eth ISP eth klien
CPU Memory
Disk HTTP
Request cached
HTTP Request
total 1
2 ...
30
Tabel 3.4-1 Tabel Pengambilan Data
Tabel 3.4-1 tabel pengambilan data adalah tabel yang digunakan untuk mencatat perolehan data pada saat dilakukan pengujian sebanyak tiga puluh kali per
target hit per kategori, sehingga nantinya akan didapat sebanyak lima belas tabel. Parameter yang dicatat adalah nilai dari tiap parameter yang dihasilkan tepat pada
saat target hit tercapai.
53
Tabel rata rata Kategori: [
Statis, Dinamis, Aktif
]
Target HIT
eth-ISP eth-klien
CPU Memory
Disk HTTP
Request cached
HTTP Request
total
10 20
30 40
50
Tabel 3.4-2 Tabel Rata Rata Hasil Pengujian
Setelah semua pengujian selesai, dilakukan pencatatan data yang didapat dari masing masing tabel hasil pengujian ke dalam tabel rata rata. pencatatan data
dikelompokkan berdasarkan kategori jenis web yang diuji, sehingga akan didapat tiga tabel rata rata.
Keterangan: eth1-ISP adalah nilai total byte usage yang digunakan dari Proxy
ke internet. Satuannya adalah MegaByte MB. eth0-klien adalah nilai total byte usage dari Proxy ke klien.
Satuannya adalah MegaByte MB. CPU adalah nilai penggunaan resource CPU yang didapat pada
saat HIT tercapai. Satuannya adalah persentase . Memory adalah nilai besaran memori utama yang digunakan pada
saat HIT tercapai. Satuannya adalah MegaByte MB. Disk adalah nilai yang digunakan oleh partisi cache Squid saat HIT
tercapai. Satuannya adalah MegaByte MB.
54
HTTP request cached adalah jumlah request yang masuk dalam kategori HIT. Digunakan untuk perhitungan hit ratio.
HTTP request total adalah jumlah semua request yang dihasilkan pada saat tiap pengujian berlangsung. Digunakan untuk
perhitungan hit ratio.
55
BAB IV IMPLEMENTASI
4.1. Instalasi Dan Konfigurasi Squid Proxy
4.1.1. Konfigurasi tata letak partisi
Dalam penelitian ini digunakan dua buah disk sebagai salah satu komponen yang digunakan untuk membangun sebuah Proxy server.
WD7500AYYS 52GB
20GB 2GB
Mount Point: Mount Point: var
SWAP
ST3808110AS 52GB
Mount Point: Squidcache
Disk pertama terdapat tiga partisi, yaitu 52GB dialokasikan untuk root directory
, 20GB untuk var var , dan swap sebesar 2GB. Sedangkan disk kedua digunakan sebagai partisi cache untuk Squid Proxy. File konfigurasi pada
Squid Proxy nantinya akan diatur untuk melakukan caching pada direktori
Squidcache yang telah dialokasikan sebesar 52GB.
56
4.1.2. Instalasi program
Program Squid dapat diunduh secara gratis dengan mengunjungi tautan http:www.squid-cache.orgVersions.
Setelah source binary package tersimpan di komputer, lakukan ekstraksi dengan perintah
tar –xvf squid-3.1.23.tar.gz
di jendela terminal. langkah selanjutnya, masuk ke dalam direktori hasil ekstraksi
Squid .
Sebelum masuk proses instalasi, lakukan kompilasi pada Squid. Setelah program selesai dikompilasi, lakukan instalasi dengan mengetik
make
, kemudian
make install
. Jika tidak muncul pesan error, maka program Squid telah berhasil terpasang pada direktori
etcSquid.
4.1.3. Konfigurasi Squid Proxy
Program Squid Proxy membutuhkan perintah konfigurasi agar dapat bekerja. File konfigurasi dapat ditemukan pada etcsquidetcsquid.conf. Sebelum
menjalankan program Squid, kita harus mengubah file squid.conf sesuai kebutuhan. Pengaturan paling dasar adalah menentukan pengaturan cache, meliputi lokasi pada
disk , ukuran maksimum dan minimum, algoritma penghapusan, access control list,
effective user , serta penambahan pengaturan pengaturan lain yang dirasa perlu
sesuai kebutuhan.
57
4.1.4. Parameter konfigurasi squid.conf
Berikut ini adalah beberapa parameter yang nanti akan digunakan sebagai konfigurasi pada squid.conf:
1. acl
acl Access Control List adalah sebuah aturan spesifik yang
digunakan untuk operasi pada Squid Proxy. Penggunaan: acl [nama_acl] [tipe_acl] [argumen]
Contoh: acl klien src 10.10.10.028 Elemen acl:
proto protokol transfer HTTP, FTP, dll.
src IP address klien
dst IP address server
port nomor port tujuan server
method HTTP request method
List acl:
http_access mengijinkan klien untuk mengakses port HTTP
http_reply_access mengijinkan klien untuk menerima reply pada port
HTTP
cache mengatur respon yang tidak perlu dicache
58
2. http_port
http_port mengatur port yang digunakan oleh Squid Proxy. Klien yang
akan terhubung dengan Proxy harus menggunakan port yang ditentukan ini.
Penggunaan: http_port [mode] [opsi] Contoh: http_port 10.10.10.1:80 accel vhost
Mode http_port:
intercept mendukung penolakan alamat ip tertentu
tProxy dukungan linux TPROXY untuk spoofing koneksi
yang keluar menggunakan IP milik klien
accel untuk Proxy accelerator
ssl-bump mendukung SSL untuk setiap request CONNECT
dari klien ke server
3. cache_mem
Digunakan untuk menetapkan jumlah memori ideal yang digunakan oleh obyek cache.
Penggunaan: cache_mem [besar data] Contoh: cache_mem 512 MB
4. maximum_object_size
Menetapkan ukuran file maksimum yang akan disimpan dalam disk. Obyek yang berukuran lebih besar dari parameter tidak akan disimpan
di dalam disk.
59
Penggunaan: maximum_object_size [besar data] Contoh: maximum_object_size 1024 MB
5. minimum_object_size
Merupakan kebalikan dari maximum_object_size, dimana file yang berukuran lebih kecil dari angka yang ditetapkan tidak akan
disimpan dalam disk. Penggunaan: minimum_object_size [besar data]
Contoh: minimum_object_size 64 KB 6.
maximum_object_size_in_memory Menentukan ukuran file maksimum yang akan disimpan dalam
memori. Nilai yang lebih besar dari angka yang ditentukan tidak akan disimpan dalam memori.
Penggunaan: maximum_object_size_in_memory
[besar data]
Contoh: maximum_object_size_in_memory 32 MB 7.
memory_replacement_policy Menetapkan jenis policy atau aturan yang digunakan untuk
penggantian obyek dalam memori saat ruang penyimpanan telah habis.
Penggunaan: memory_replacement_policy [policy] Contoh: memory_replacement_policy lru
60
8. cache_replacement_policy
Sama dengan memory_replacement_policy, tetapi konfigurasi ini mengatur penggantian obyek pada ruang penyimanan hard disk.
Penggunaan: cache_replacement_policy [policy] Contoh: cache_replacement_policy heap GDSF
9. cache_dir
Menentukan tempat dimana cache akan disimpan dalam disk. Direktori yang digunakan untuk penyimpanan harus bersifat
rewritable atau dapat ditulisi oleh user yang login pada server.
Penggunaan: cache_dir [tipe] [lokasi] [besar data] [L1] [L2] [opsi]
Contoh: cache_dir ufs cache 512 16 256 Argumen:
tipe ufs
aufs diskd
lokasi Lokasi tempat file cache akan disimpan, dapat
berupa direktori mount point
besar data Menentukan besarnya kapasitas cache yang
diijinkan.
L1 Banyaknya jumlah subdirektori level pertama yang
dibuat di bawah direktori untuk menyimpan cache
61
L2 Banyaknya jumlah subdirektori yang dibuat di
bawah subdirektori pertama
opsi Ukuran maksimum yang dissuport direktori
penyimpanan
10. cache_swap_low, cache_swap_high
Digunakan untuk menentukan batas atas dan bawah kapan sebuah obyek akan diganti berdasarkan besaran presentase dibanding total
penggunaan disk. Penggunaan: cache_swap_low [persentase, 0-100]
cache_swap_high [presentase, 0-100] Contoh: cache_swap_low 60
cache_swap_high 98 11.
ipcache_size, ipcache_low, ipcache_high ipcache_size
digunakan untuk menetukan ukuran cache untuk caching IP address
. ipcache_low dan ipcache_high digunakan untuk menentukan batas atas dan bawahnya.
Penggunaan: ipcache_size [jumlah entry] ipcache_low [presentase 0-100]
ipcache_high [presentase 0-100] Contoh: ipcache_size 2048
ipcache_low 80 ipcache_high 95
62
12. refresh_pattern
refresh_pattern digunakan untuk menentukan seberapa lama sebuah
obyek akan tersimpan dalam Squid cache. Apabila umur obyek yang tersedia belum mencapai batasan yang ditentukan, maka Squid tidak
akan meminta obyek dari server aslinya. Besaran waktunya dihitung dengan satuan menit.
Penggunaan: refresh_pattern [-i] [regular expression] [min] [presentase] [max] [opsi]
Contoh: refresh_pattern -i \.jpg 14400 95 20160 override-expire
13. cache_effective_user, cache_effective_group
Menentukan hak akses user dan grup tertentu dalam sistem linux. Jika program Squid Proxy tidak dijalankan oleh root, maka pengguna harus
menentukan user dan grup yang diijinkan untuk menjalankan program Squid Proxy
. Penggunaan: cache_effective_user [UID]
cache_effective_group [GID] Contoh: cache_effective_user Proxy
cache_effective_group Proxy
63
14. access_log, cache_log
Menentukan dimana file access.log dan cache.log akan disimpan di direktori.
Penggunaan: access_log [lokasi file] cache_log [lokasi file]
Contoh: access_log varlogSquidaccess.log cache_log varlogSquidcache.log
15. max_open_disk_fds
Untuk menghindari terjadinya bottleneck pada disk, Squid dapat mengabaikan file yang ada dalam cache apabila jumlah file descriptor
yang tersedia telah melebihi batas yang ditentukan. Penggunaan: max_open_disk_fds [ukuran]
Contoh: max_open_disk_fds 0 0 artinya tidak ada batasan 16.
max_filedesc Jumlah maksimal filedescriptor yang diijinkan. Apabila diset ke angka
nol, maka Squid akan menggunakan nilai yang ditentukan dalam ulimit
. Penggunaan: max_filedesc [nilai]
Contoh: max_filedesc 65535 17.
quick_abort_min, quick_abort_max Ketika pengguna membatalkan permintaan terhadap suatu obyek dari
internet saat obyek belum ter-cache, Squid akan tetap menyelesaikan
permintaan tersebut untuk di-cache. Apabila obyek yang sedang
64
diminta kurang dari nilai quick_abort_min, maka Squid akan tetap menyelesaikan permintaan tersebut. Jika obyek yang diminta
berukuran lebih dari quick_abort_max, maka permintaan akan dibatalkan. Jika menginginkan untuk melanjutkan permintaan apapun
setelah klien membatalkan permintaan, quick_abort_max dan quick_abort_min diberi nilai nol.
Penggunaan: quick_abort_max [ukuran] KB quick_abort_max [ukuran] KB
Contoh: quick_abort_max 0 KB quick_abort_max 0 KB
18. client_lifetime
Menentukan lamanya sebuah klien diijinkan untuk tetap terhubung dengan proses caching. Opsi ini mencegah agar tidak terlalu banyak
socket yang dibuka yang akan mempengaruhi parameter
filedescriptor .
Penggunaan: client_lifetime [besaran waktu] Contoh: client_lifetime 1 day
19. memory_pools
Jika opsi ini diaktifkan, maka Squid akan menggunakan memori yang telah dialokasikan tapi belum digunakan, untuk dapat digunakan pada
waktu kedepan. Penggunaan: memory_pools [on|off]
Contoh: memory_pools off
65
20. refresh_all_ims
Jika opsi ini diberi nilai on, maka Squid akan selalu melakukan pengecekan ke server asal ketika klien mengirimkan sebuah
permintaan If-Modified-Since, misalnya adalah ketika klien melakukan refresh pada halaman website pada beberapa browser
tertentu. Penggunaan: refresh_all_ims [on|off]
Contoh: refresh_all_ims off 21.
reload_into_ims Jika diberi nilai on, maka jika klien melakukan refreshreload pada
halaman website, permintaan tersebut akan diubah menjadi If- Modified-Since.
Penggunaan: reload_into_ims [on|off] Contoh: reload_into_ims off
22. offline_mode
Jika diberi nilai on, maka Squid tidak akan melakukan validasi obyek yang telah berada dalam cache ke server aslinya.
Penggunaan: offline_mode[on|off] Contoh: offline_mode on
66
4.2. Konfigurasi Program Pengambilan Data