SQUID優化重要引數
maximum_object_size 是 能cache最大的檔案大小。對應wmv,rm檔案,建議設定為32768 kB
maximum_object_size_in_memory 是在記憶體中cache的最大檔案大小。
cache_mem 是SQUID可用到的最大記憶體。經實踐,4G記憶體的伺服器用2G;超過2G導致SQUID執行不穩
分析SQUID所cache內容:
執行squidclient -p 80 cache_object://localhost/info
能看到如下內容:
Storage Swap size: 7549104 KB
Storage Mem size: 418804 KB
Mean Object Size: 160.46 KB
Mean Object Size是平均內容大小,一般要把maximum_object_size_in_memory設定成離它最近的128的倍數。在這個例子中maximum_object_size_in_memory 的值應該是256kB。
cache_mem 一般設定成伺服器記憶體的一半或更多,只要執行過程中LINUX沒有使用SWAP就可以。
按業務分SQUID
比如某個論壇,使用者能上載圖片和視訊;當然我們要把上載的圖片、視訊放在單獨的域名上,比如img.example.com, video.example.com;這兩個域名只提供靜態檔案服務。
根據統計,圖片的平均大小在100KB,視訊的平均大小在4M,差別是很大,應該建兩個squid分別作圖片和視訊的CACHE。圖片SQUID的 maximum_object_size_in_memory 設定為256KB,視訊的SQUID的maximum_object_size_in_memory設定為8196KB。
BBS,論壇是典型動態內容,要保證內容更新及時的同時,提高訪問速度,降低資料庫負擔不是個簡單任務。經實踐發現如下辦法取得很好效果:
1) 配置SQUID,對動態內容強制CACHE,用到的配置引數是refresh_pattern
refresh_pattern ^/forum/viewthread.php 1440 1000% 1440 ignore-reload
/forum/viewthread.php的內容將強制保持1天
2) 修改論壇程式在使用者回覆帖子後,向SQUID傳送PURGE命令清除相應帖子的頁面CACHE,保證失效性,實現過這一功能,但是有時候生效,有時候無效,還未進一步查明原因.(Edit by Sean)
3) 有些頻繁更新的頁面可以不CACHE,用no_cache引數
acl no_forum_cache urlpath_regex ^/forum/forumdisplay.php
no_cache DENY no_forum_cache