66
4.2. Konfigurasi Program Pengambilan Data
Dalam penelitian ini, dibutuhkan program lain sebagai alat ukur kinerja Squid Proxy
yang akan diteliti. Ada dua program yang akan digunakan, program pertama berfungsi melakukan monitoring parameter hit yang diperoleh Squid Proxy
secara realtime, program kedua berfungsi untuk mengambil nilai parameter lain seperti byte usage, memory, cpu, dan disk. Kedua program tersebut dibuat dengan
awk script sederhana.
Program pertama hitCounter: Ketika dijalankan, program hitCounter akan memantau perolehan hit ratio
berdasarkan data yang tercatat pada varlogsquidaccess.log. File access.log mengeluarkan beberapa parameter yang akan digunakan sebagai patokan pada saat
melakukan perhitungan. Parameter yang digunakan adalah result code. Menurut Wessels 2004, result code pada access.log diklasifikasikan
seperti pada tabel berikut:
kode keterangan
kategori
TCP_HIT
Squid memiliki file yang di request pada cache disk dan memberikannya ke klien
HIT
TCP_MISS
Squid tidak memiliki file yang diminta di dalam disk cache
MISS
TCP_REFRESH_HIT
Squid menemukan cache file yang diminta klien dan melakukan validasi ke server tujuan, tapi
server asal mengirimkan kode Not Modified. Sehingga Squid menganggap cache tersebut
masih valid
HIT
67
TCP_REF_FAIL_HIT
Squid menemukan cache file yang diminta klien dan melakukan validasi ke server tujuan, tapi
server asal tidak merespon. Squid menganggap salinan tersebut valid dan memberikan ke klien.
HIT
TCP_REFRESH_MISS
Squid menemukan cache file yang diminta klien dan melakukan validasi ke server tujuan, tapi
server tujuan memberikan file yang baru MISS
TCP_CLIENT_REFRESH_MISS
Squid menemukan cache file yang diminta klien tapi karena klien melakukan request no-cache,
maka Squid meneruskannya ke server tujuan MISS
TCP_IMS_HIT
klien meminta validasi ke Squid, dan Squid mengindikasikan bahwa file yang diminta masih
berlaku. Squid memberikan salinan file kepada klien tanpa melakukan validasi ke server tujuan
HIT
TCP_SWAPFAIL_MISS
Squid menemukan cache file yang diminta, tapi tidak bisa mengaksesnya dalam disk. Sehingga
Squid meneruskan permintaan klien langsung ke server tujuan
MISS
TCP_NEGATIVE_HIT
ketika permintaan ke server tujuan menghasilkan kode HTTP error, Squid tetap melakukan caching
pada response
HIT
TCP_MEM_HIT
Squid menemukan salinan file yang diminta, tersimpan dalam memori utama
HIT
TCP_DENIED
permintaan dari klien ditolak MISS
TCP_OFFLINE_HIT
ketika offline_mode diaktifkan, Squid memberikan salinan file tanpa memeriksa apakah
file tersebut kadaluarsa atau tidak
HIT
NONE
error MISS
UDP_HIT
hit untuk UDP
HIT
UDP_MISS
miss untuk UDP MISS
UDP_MISS_NOFETCH
sama dengan UDP_MISS MISS
UDP_DENIED
permintaan ditolak MISS
UDP_INVALID
invalid query MISS
Tabel 4.2-1 Squid Result Code
68
Rumus untuk mengitung perolehan hit ratio adalah: ∑ �� ℎ � �
∑ �� �� � � ×
Pada file access.log, result code ditemukan pada kolom ke empat. Jadi, parameter string
yang akan digunakan acuan adalah “_HIT”. Karena semua kategori HIT
memiliki string “_HIT” pada kolom result code. Jika kolom ke empat [4] mengandung string
“_HIT”, maka nilai variabel jumlah hit [jHit] bertambah satu. Sedangkan nilai variabel jumlah total [jumlah], akan bertambah satu pada
setiap kali perulangan, baik hit maupun miss. Perulangan ini berjalan ketika ada penambahan baris baru pada access.log. Contoh keluaran yang dihasilkan oleh file
access.log adalah sebagai berikut:
pada saat itu juga, program akan mengkalkulasi jumlah hit secara realtime dengan rumus:
ratio=jHitjumlah×100
Kemudian jika jumlah ratio yang didapat telah mencapai rentang yang ditentukan, dalam contoh diberikan target antara 10.00 sampai dengan 10.90
maka secara otomatis program akan memanggil program kedua yang berisi perintah untuk mencatat penggunaan resource pada saat target hit tercapai ke dalam sebuah
file dengan nama “
stat_HIT_[hit yang diperoleh saat itu].txt
”, lalu menyalin file access.log,
kemudian program akan berhenti dan komputer akan restart.
14.007 209 10.10.10.7 TCP_ HIT
200 831 GET http:--.png - DIRECT54.230.159.84 imagepng
69
Kode programnya adalah sebagai berikut:
binbash
tail -f varlogSquidaccess.log |\ awk \
{ jumlah++;\
if 4 ~ _HIT { jHit++;
} if jHit==0 {
ratio==0; }
ratio=jHitjumlah100; if ratio=10.00ratio=10.90 {
system.getStat stat_HIT_ ratio .txt; systemcp varlogsquidaccess.log access.log;
exit 1; reboot;
} }
70
Program kedua getStat: Program ini akan dieksekusi secara otomatis oleh program hitCounter
hanya ketika jumlah target hit pada progran hitCounter telah terpenuhi. Program ini berfungsi untuk mengambil data penggunaan resource pada saat target hit telah
berhasil dicapai, kemudian menuliskannya ke dalam sebuah file teks. Data yang diambil adalah:
Total memory yang digunakan Squid untuk bekerja:
systemfgrep Vm procpidof squidstatus;
Total ketersediaan memori yang ada pada server:
systemfgrep Mem procmeminfo;
Penggunaan CPU oleh Squid:
systemetcSquidbinsquidclient -p 80 mgr:info | grep \CPU Usage\;
Penggunaan disk data yang nanti digunakan hanya partisi Squidcache:
systemdf -h;
Penggunaan data pada eth0 maupun eth1:
print systemifconfig eth1 | grep bytes; print systemifconfig eth0 | grep bytes;
Kode program selengkapnya adalah:
71
binbash
awk \ BEGIN{
print------------------------------------------------------------; print\n|:memory-Squid:|-=======================================-|;
systemfgrep Vm procpidof squidstatus; print\n|:memory-total:|========================================-|;
systemfgrep Mem procmeminfo; print\n|:cpu usage:|-==========================================-|;
systemetcSquidbinsquidclient -p 80 mgr:info | grep \CPU Usage\; print\n|:disk usage:|-=========================================-|;
systemdf -h; print\n|:net usage:|-==========================================-|;
printf eth1net: ; print systemifconfig eth1 | grep bytes;
eth0client: ; print systemifconfig eth0 | grep bytes;
print\n---------------------------------------------------------; }
Setelah selesai melakukan instalasi dan konfigurasi, dilakukan pengecekan program yang akan digunakan. Yang akan dilakukan adalah membandingkan hasil
perolehan hit yang didapat dari program awk di atas dengan hasil yang didapat oleh program lain, untuk memastikan bahwa program yang dibuat bekerja dengan baik.
72
4.3. Konfigurasi Komputer Klien