squid 代理的緩慢響應 - 優化
我們在 Centos5.3 上使用**squid 3.0 ,目前有 20 個使用者(Internet Explorer)使用這個代理。**問題是通過代理的訪問速度較慢。即使是像 google.com(.au) 這樣的簡單網頁,也比沒有代理的直接連接要長 5 秒。看起來有大約 2-5 秒的延遲。禁用 google.com(.au) 的記憶體沒有幫助。明確定義 dns_nameservers 沒有區別。
伺服器參數:雙核 AMD Opteron(tm) 處理器 2220、6GB 記憶體、60gb SCSI 硬碟
cache_mem 256 MB
cache_dir ufs /usr/local/squid/var/cache 30000 16 256
maximum_object_size_in_memory 256 KB
minimum_object_size 0 KB(0 - 200 KB - 沒有真正的區別,延遲仍然存在)
maximum_object_size 32 MB
您將如何根據伺服器規範更改 squid.conf 中的這些規範。什麼會導致延遲?對於像 yahoo.com.au 這樣更大的網頁,還有一種方法可以從記憶體中接收頁面的一部分,然後再接收其餘部分(最後是圖片)。目前 15 秒內沒有任何內容,然後出現整個網頁。
我的第一個預感是使用 tcpdump 嗅探流量並將其載入到wireshark 以查看延遲發生在哪裡。
tcpdump -i any -s 0 -w /tmp/squid.pcap
(如果您通過 ssh 執行此操作,請在末尾添加“not port ssh”。)
一旦你把它載入到wireshark中,你應該能夠看到延遲出現在哪裡。我建議在安靜的時間這樣做,這樣就不會有太多的交通遮擋您的視線。如果您可以成為當時唯一訪問代理的人,那就更好了。
可能的延誤是:
- 瀏覽器聯繫代理
- 代理聯繫網路伺服器
- 代理 DNS 請求
- 代理向瀏覽器返迴響應