[心得] Squid 最佳化命中率的方法 (正向代理)

看板Linux作者 (Alan)時間15年前 (2011/01/06 11:48), 編輯推噓4(402)
留言6則, 5人參與, 最新討論串1/1
一個網頁的組成有以下這些元素(物件) 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,是寂寞... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.32.22.148

01/06 12:35, , 1F
推!
01/06 12:35, 1F
※ 編輯: AlanLive 來自: 114.32.22.148 (01/06 12:45)

01/06 14:28, , 2F
架PROXY自己用?
01/06 14:28, 2F

01/06 14:41, , 3F
Squid 是我架來自己用的沒錯
01/06 14:41, 3F
架構是 Proxomitron (擋廣告) → Squid (快取) → Polipo (優化連線) 適用範圍:桌機上的瀏覽器、手機 (Android) 及其它可設 Proxy 的程式 家裡有三台電腦一台智慧型手機,皆使用此台伺服器 PS.另外還有一個 DNS Cache 伺服器 (軟體是 FastCache) 連接速度所提升的效果有時甚至高於 Squid (查詢DNS真的很花時間,Google也承認) ※ 編輯: AlanLive 來自: 114.32.22.148 (01/06 14:47)

01/07 10:08, , 4F
大推啊~~超棒的分享
01/07 10:08, 4F

01/07 14:00, , 5F
想問現在哪間學校的 Squid 的 ICP 協議有公開讓校外使用?
01/07 14:00, 5F

01/07 21:27, , 6F
讚一個
01/07 21:27, 6F
文章代碼(AID): #1D9JjuVq (Linux)