對提高squid命中率的一些研究

對提高squid命中率的一些研究 

   如何提高Squid的命中率是很多linux管理員比較頭疼的問題,比如說在refresh_pattern這參數後面加入ignore-no-cache ignore-private reload-into-ims override-expire override-lastmod ignore-no-store refresh-ims這樣的參數以提高命中率,其實還有一個地方往往是比較容易忽略vary_ignore_expire on這個參數。

   我們來看一下squid對vary頭信息的解釋:vary機制是http1.1 協議的新特性,使得server端可以根據用戶請求返回給用戶不同的內容,現在互聯網中應用vary最廣的一點就是對壓縮的支持,例如當用戶請求帶着header “Accept-Encoding: gzip,deflate”,表明用戶期望從server端拿到壓縮的內容,這樣server端會給用戶一個包含壓縮內容的文件,並帶着vary頭“vary: Accept-Encoding”頭,和“Content-Encoding:gzip ”頭,如果用戶請求非壓縮的內容,源站也就可以給用戶非壓縮的內容。squid對vary機制的支持是這樣的,因爲它要對用戶請求的內容給出不同vary的內容,因此對於一個url在cache上需要存多份,就拿壓縮、非壓縮這兩份來舉例說明,它採用索引文件的形式,在索引文件中存着相應內容的vary文件索引,我們把索引的文件成爲索引object,其它兩個文件叫做vary Object,這樣其實在cache中實際存儲的文件數是3個。存儲是索引object的key值由url,method計算出來,其它兩個索引的object的key由url,method,和vary頭計算出來,所以是三個不同的索引文件。

 如果有一些服務器的web應用程序提供的還是http1.0的協議的話,對於vary_ignore_expire on這個參數是有作用的。因爲默認vary_ignore_expire是off,如果http1.0的vary信息裏帶有過期時間的話,squid還是不能緩存住。這時我們開始這個參數對提高命中率會有一定幫助

  

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章