Mengupas bagaimana terjadinya TCP_MISS, TCP_HIT, TCP_REFRESH_UNMODIFIED berdasarkan debug refresh_pattern

bagaimana terjadinya TCP_MISS, TCP_HIT, TCP_REFRESH_UNMODIFIED :-D berdasarkan debug refresh_pattern

langsung aja , sy mulai. Bismillah


#tambahkan config berikut pada squid.conf
#---------------------------------------

cache_store_log /var/log/squid/store.log
debug_options ALL,1 22,3

#----------------------------------------

kita bahas TCP_MISS dulu ya :-)

request pertama :
buka browser anda, dan paste link berikut : http://www.w3schools.com/images/pulpit.jpg

buka file cache.log, lalu cari debug utk link yg dibuka tadi.

contoh debug:

2014/03/01 08:25:58.304 kid1| refresh.cc(540) getMaxAge: getMaxAge: 'http://www.w3schools.com/images/pulpit.jpg'
2014/03/01 08:25:58.594 kid1| ctx: enter level  0: 'http://www.w3schools.com/images/pulpit.jpg'
2014/03/01 08:25:58.594 kid1| refresh.cc(247) refreshCheck: refreshCheck: 'http://www.w3schools.com/images/pulpit.jpg'
2014/03/01 08:25:58.594 kid1| refresh.cc(262) refreshCheck: refreshCheck: Matched '\.jpg$ 3600 20%% 7200'
2014/03/01 08:25:58.594 kid1| refresh.cc(264) refreshCheck: age: 61
2014/03/01 08:25:58.594 kid1| refresh.cc(266) refreshCheck: check_time: Sat, 01 Mar 2014 01:26:58 GMT
2014/03/01 08:25:58.594 kid1| refresh.cc(268) refreshCheck: entry->timestamp: Sat, 01 Mar 2014 01:25:57 GMT
2014/03/01 08:25:58.594 kid1| refresh.cc(171) refreshStaleness: FRESH: expires 1393640757 >= check_time 1393637218 
2014/03/01 08:25:58.594 kid1| refresh.cc(288) refreshCheck: Staleness = -1
2014/03/01 08:25:58.594 kid1| refresh.cc(373) refreshCheck: refreshCheck: object isn't stale..
2014/03/01 08:25:58.594 kid1| refresh.cc(375) refreshCheck: refreshCheck: returning FRESH_EXPIRES
2014/03/01 08:25:58.594 kid1| http.cc(482) cacheableReply: YES because HTTP status 200

saya coba jelaskan sedikit disini cara membaca debug-nya (CMIIW)

1. 2014/03/01 08:25:58.304 kid1| refresh.cc(540) getMaxAge: getMaxAge: 'http://www.w3schools.com/images/pulpit.jpg'
squid mengambil max-age dari objek pulpit.jpg

bagaimana mengetahui response header cache-control max-age? liat..diskusi kita sebelumnya di menu Files :-D

2. 2014/03/01 08:25:58.594 kid1| refresh.cc(247) refreshCheck: refreshCheck: 'http://www.w3schools.com/images/pulpit.jpg'
   2014/03/01 08:25:58.594 kid1| refresh.cc(262) refreshCheck: refreshCheck: Matched '\.jpg$ 3600 20%% 7200'

squid mencocokkan refresh_pattern yg anda buat di squid.conf dan ternyata cocok dengan '\.jpg$ 3600 20%% 7200' karena di squid.conf saya buat

refresh_pattern -i \.jpg$ 60 20% 120 override-expire

INGAT : pada debug menggunakan detik, pada refresh_pattern menggunakan menit
        60 menit = 3600 detik , 120 menit = 7200 detik

3. 2014/03/01 08:25:58.594 kid1| refresh.cc(264) refreshCheck: age: 61
age = 61 , disini mksdnya adalah lama objek didalam cache adalah 61 detik. dari mana dapat nilai 61 detik ini ? 
rumusnya = check_time - entry->timestamp 

trus apa itu entry->timestamp dan check_time ? sabarrrrrr...sbntr lg dijelaskan :-D

4. 2014/03/01 08:25:58.594 kid1| refresh.cc(266) refreshCheck: check_time: Sat, 01 Mar 2014 01:26:58 GMT
   2014/03/01 08:25:58.594 kid1| refresh.cc(268) refreshCheck: entry->timestamp: Sat, 01 Mar 2014 01:25:57 GMT

   check_time: Sat, 01 Mar 2014 01:26:58 GMT = tanggal,jam,menit,detik pengecekan objek
   entry->timestamp: Sat, 01 Mar 2014 01:25:57 GMT = tanggal,jam,menit,detik objek disimpan kedalam cache

INGAT : disini menggunakan GMT, kalo mau dicocokin dgn local time , misal GMT+7 (WIB) , tinggal tambah 7 jam aja. 
    jadi check_time : Sat, 01 Mar 2014 08:26:58 GMT+7
       entry->timestamp:Sat, 01 Mar 2014 08:25:57 GMT+7

5. 2014/03/01 08:25:58.594 kid1| refresh.cc(171) refreshStaleness: FRESH: expires 1393640757 >= check_time 1393637218 
   2014/03/01 08:25:58.594 kid1| refresh.cc(288) refreshCheck: Staleness = -1 

squid ngecek klo objeknya FRESH, diliat dari expires 1393640757 >= check_time 1393637218 , artinya tanggal expire objek tadi "masih" lebih besar (masih didepan) dari tanggal kita cek
expire = 1393640757 (unix time stamp)= Sat Mar  1 02:25:57 GMT = Sat Mar  1 09:25:57 GMT+7
check_time = 1393637218 (unix time stamp) = Sat Mar  1 01:26:58 GMT = Sat Mar  1 08:26:58 GMT+7

Staleness = -1 utk menyatakan klo objek tsb fresh

CATET : Return values:
    -1 If the response is fresh.
    >0 The amount of staleness.
    0 NOTE return value of 0 means the response is stale.

6. 2014/03/01 08:25:58.594 kid1| http.cc(482) cacheableReply: YES because HTTP status 200
mksdnya objek ini bisa disimpan kedalam cache. bagaimana ngecek kalau objek tsb disimpan ke cache? berikut dibawah ini lanjutannya :-)

skrg coba buka file store.log, cari SWAPOUT dgn objekhttp://www.w3schools.com/images/pulpit.jpg

di file store.log
1393637159.734 SWAPOUT 00 00005858 9D54B32FE3DA33AA0D39E0BCF7305E30  200 1393637157 1389002194 1393640757 image/jpeg 75672/75672 GEThttp://www.w3schools.com/images/pulpit.jpg

SWAPOUT disini mksdnya bahwa objek tersebut disimpan ke cache disk, liat tanggal,jam,menit detiknyanya adalah 1393637159.734
1393637159.734 = Sat Mar  1 01:25:59 GMT , coba liat keatas, pada debug, entry->timestamp: Sat, 01 Mar 2014 01:25:57 GMT. sama bukan ????

pada access.log bagaimana statusnya, check it out :-D

coba buka file access.log, di file access.log terlihat :

1393637159.736   1748 10.10.7.131 TCP_MISS/200 76099 GEThttp://www.w3schools.com/images/pulpit.jpg - HIER_DIRECT/66.29.212.110 image/jpeg

1393637159.736 (unix time stamp) = Sat Mar  1 01:25:59 GMT , sama dengan tanggal dan jam objek disimpan ke disk cache (liat penjelasan store.log diatas)

TCP_MISS/200 
MISS = The response object delivered was the network response object.
200 = OK (sucsessfull transaction)

mksdnya TCP_MISS/200 adalah request berhasil (200/OK) dan objek yg diminta diambil langsung dari server asal yaitu HIER_DIRECT/66.29.212.110 (MISS)


Ref :

di test di Squid Cache: Version 3.4.3

Demikian cara sy menganalisa knp muncul TCP_MISS di access.log (tail -f /var/log/squid/access.log )

akhir tulisan sore ini, mengutip dr bunda Dorce :
"kesempurnaan adalah milik Allah Subhanahu wa Ta’ala, kekhilafan dan kesalahan datangnya dari saya" :-)

bagaimana dgn rekan2? ditunggu koreksi, diskusi dan komentarnya.

----------------------------------------------------

Lanjutan utk TCP_HIT

request kedua :
buka browser anda, dan paste link berikut : http://www.w3schools.com/images/pulpit.jpg

buka file cache.log, lalu cari debug utk link yg dibuka tadi.

contoh debug:


2014/03/01 08:33:09.564 kid1| refresh.cc(247) refreshCheck: refreshCheck: 'http://www.w3schools.com/images/pulpit.jpg'
2014/03/01 08:33:09.564 kid1| refresh.cc(262) refreshCheck: refreshCheck: Matched '\.jpg$ 3600 20%% 7200'
2014/03/01 08:33:09.564 kid1| refresh.cc(264) refreshCheck: age: 432
2014/03/01 08:33:09.564 kid1| refresh.cc(266) refreshCheck: check_time: Sat, 01 Mar 2014 01:33:09 GMT
2014/03/01 08:33:09.564 kid1| refresh.cc(268) refreshCheck: entry->timestamp: Sat, 01 Mar 2014 01:25:57 GMT
2014/03/01 08:33:09.564 kid1| refresh.cc(171) refreshStaleness: FRESH: expires 1393640757 >= check_time 1393637589 
2014/03/01 08:33:09.564 kid1| refresh.cc(288) refreshCheck: Staleness = -1
2014/03/01 08:33:09.564 kid1| refresh.cc(373) refreshCheck: refreshCheck: object isn't stale..
2014/03/01 08:33:09.564 kid1| refresh.cc(375) refreshCheck: refreshCheck: returning FRESH_EXPIRES

sdh bisa menjelaskan mksd debug diatas ?

dari debug kita liat :

2014/03/01 08:33:09.564 kid1| refresh.cc(264) refreshCheck: age: 432
2014/03/01 08:33:09.564 kid1| refresh.cc(266) refreshCheck: check_time: Sat, 01 Mar 2014 01:33:09 GMT
2014/03/01 08:33:09.564 kid1| refresh.cc(268) refreshCheck: entry->timestamp: Sat, 01 Mar 2014 01:25:57 GMT
2014/03/01 08:33:09.564 kid1| refresh.cc(171) refreshStaleness: FRESH: expires 1393640757 >= check_time 1393637589 
2014/03/01 08:33:09.564 kid1| refresh.cc(288) refreshCheck: Staleness = -1
2014/03/01 08:33:09.564 kid1| refresh.cc(373) refreshCheck: refreshCheck: object isn't stale..
2014/03/01 08:33:09.564 kid1| refresh.cc(375) refreshCheck: refreshCheck: returning FRESH_EXPIRES

age : 432 , artinya msh lbh kecil dari max-age 3600 berarti objek msh FRESH 

atau 

expires 1393640757 >= check_time 1393637589 

2014/03/01 08:33:09.564 kid1| refresh.cc(288) refreshCheck: Staleness = -1
2014/03/01 08:33:09.564 kid1| refresh.cc(373) refreshCheck: refreshCheck: object isn't stale..

coba buka file access.log

1393637589.573     10 10.10.7.131 TCP_HIT/200 76107 GEThttp://www.w3schools.com/images/pulpit.jpg - HIER_NONE/- image/jpeg

1393637589.573 = check_time: Sat, 01 Mar 2014 01:33:09 GMT (tanggal objek dicek kedua kalinya)

TCP_HIT/200

HIT = The response object delivered was the local cache object.
200 = OK (sucsessfull transaction)


mksdnya TCP_HIT/200 adalah request berhasil (200/OK) dan objek yg diminta diambil langsung dari cache proxy HIER_NONE/- (HIT)

terlihat sdh tidak ada IP web server 66.29.212.110

  • description
  • description
  • description
  • description
  • description
  • description
  • description
  • description
  • description
  • description
  • description
  • description
  • description
  • description
  • description

Video Gallery

  • Linux
    sekedar informasi, sekarang zimbra sudah diakuisisi oleh VMWare. jadi nantinya logo webmail zimbra kita akan ada logo VMware-nya.
  • Foto
    kalo mau buat efek foto kembar yang penting pilih minimal 3 foto (mau lebih juga terserah anda aj..)yang setingan tempat dan letak kameranya
  • Network
    setelah anda membongkar dus, dan menyiapkan koneksi. yang perlu anda lakukan adalah:
  • Serba-Serbi
    16 Cara Mengikat Sepatu Ala Jepang share buat teman2 & cew ato cow yang senang menggunakan sepatu bertali. Selamat mencoba
  • Tips-Trik
    Jika agan pengguna komputer, pasti sudah tidak asing lagi dengan yang namanya mouse. Mouse adalah salah satu pendamping setia dari komputer. Hampir semua jenis mouse memiliki 3 buah tombol. Tombol kiri, tombol kanan dan tombol scroll yang ada di tengah
  • Windows
    Windows 7 merupakan versi yang jauh lebih baik daripada versi terbaru windows, yaitu windows Vista. Dan windows 7 dilengkapi dengan banyak fitur baru.