Squid 最佳化命中率的方法 (正向代理) - Linux

Ursula avatar
By Ursula
at 2011-01-06T11:48

Table of Contents

一個網頁的組成有以下這些元素(物件)

jpg、png、gif、js、flv、xml、swf、txt、html、shtml.....

用 Squid 緩存時,最理想的情況是
在上述網頁元素(物件),沒有被原始站點改變的情況下
不與遠端伺服器做任何連接(傳送封包)
直接從 Squid 的快取中返回資料給使用者的瀏覽器

於是我做了以下的分類

圖片 (jpg、png、gif、bmp)
程式語言 (js、css、xml)
其它 (flv、swf)

這些物件的特點

1.變更(更新)頻率較低
2.變更(更新)後,通常網址也會做變更

所以這些物件在 Squid 的 refresh_pattern 設定是 (版本是 2.7)

43200 60% 43200 override-expire ignore-reload ignore-no-cache ignore-private
ignore-auth ignore-stale-while-revalidate

也就是東西快取下來,直接放置一個月,也無視瀏覽器的變更請求

再來是另外一類

html、shtml、txt、php、jsp

這些元素則「必須」與遠端伺服器做連接來確認內容是否有更新
否則瀏覽器取得舊資料的可能性將大增

所以設定變成

0 30% 10080 reload-into-ims ignore-reload ignore-no-cache ignore-private
ignore-auth ignore-stale-while-revalidate

關鍵在 reload-into-ims 這個語法,Squid 會先去遠端伺服器確認目標物件是否
被變更過,若有則更新,若無則返回舊資料,這樣應該比無條件整個重新抓取資料
的速度要來的

另外那個百分比的參數我還是有點搞不太懂意思
--
這樣的設定用了兩個月,八萬的 http Requests,Hits 了兩萬八左右 (使用者只有一人)
也就是 34% 的命中率 (這是在瀏覽器本身的快取設定開啟的狀態下,如果關閉瀏覽器
(Firefox)的快取,那命中率將提高至 45% 以上甚至 60%,根據實驗,就算使用了 Squid
瀏覽器的內建快取不關閉時的速度/效率比關閉來的高)

大致就是如此
不曉得其他版友是如何設定 Squid 以提高命中率的呢?
歡迎拍磚、討論...

--
鄉民們上的不是PTT,是寂寞...

--
Tags: Linux

All Comments

Zora avatar
By Zora
at 2011-01-07T18:23
推!
Damian avatar
By Damian
at 2011-01-08T06:39
架PROXY自己用?
Caitlin avatar
By Caitlin
at 2011-01-08T10:58
Squid 是我架來自己用的沒錯
Zanna avatar
By Zanna
at 2011-01-11T19:30
大推啊~~超棒的分享
Victoria avatar
By Victoria
at 2011-01-13T23:36
想問現在哪間學校的 Squid 的 ICP 協議有公開讓校外使用?
Kama avatar
By Kama
at 2011-01-17T07:17
讚一個

想請問一下如何開啟.pl檔

Damian avatar
By Damian
at 2011-01-06T01:16
剛剛要執行pl檔時出了點問題 我要在ubuntu 10.04下執行nikto 把東西解壓縮全部放到桌面上後在終端機輸入 and#34;perl nikto.pl -h 192.168.0.1and#34; 卻一直出現and#34;沒有此一檔案或目錄and#34; 想請問一下是哪個環節出了問題,謝謝 - ...

關於設定DNS中zone的設定

Kristin avatar
By Kristin
at 2011-01-05T22:19
在架設dns主機的過程中 會需要設定區域內的正解與反解的zone 若區域內有其他台(ftp、www等)要連線的也一併在此設定 假設 有很多台要設定 一台台打字設定不是很麻煩又慢嗎 也可能會key錯 是否有方法可以迅速的將想要設定的一併輸入 我目前只想到寫shell script 如果不會寫的 ...

關於使用iptables轉port?

Megan avatar
By Megan
at 2011-01-05T18:24
各位好: 先說明一下環境,我的pc只有一個介面eth0(192.168.1.101/24) 想要實驗該如何將連到我的port:23導至ptt.cc:23呢? 底下是我測試的語法: iptables -t nat -A PREROUTING -p tcp --dport 23 -j ACCEPT iptabl ...

關於vmware 灌RedHat,無法分割磁區及安裝軟體問題

Carol avatar
By Carol
at 2011-01-05T12:14
電腦環境: Windows XP SP3 使用vmware workstation 7.0.0 build-203739, 過程: 現在在vm環境中要安裝RedHat 5.5時.發現只有在vm安裝前置過程中, 只有要我輸入username及password訊息, 但真正redhat在安裝過程中並沒有出現要 ...

BetaRadio v1.2 釋出

Valerie avatar
By Valerie
at 2011-01-05T00:34
http://fourdollars.blogspot.com/2011/01/betaradio-v12.html 功能跟 v1.1 一樣沒有改變,不過程式碼完全使用 Vala 重寫一遍。 原始碼下載: http://betaradio.googlecode.com/files/betaradio-1. ...