Konfigurasi Program Pengambilan Data

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