系統需求

最重要的事情是要決定系統必須承受的最大網路負載。因此需要特別注意負載尖峰,尖峰值有可能是每天平均值的四倍。當存在疑問時,最好高估系統的需求,因為如果讓 Squid 在接近其容量的限制下工作,有可能會造成服務品質的嚴重損失。接下來的小節將依重要順序指出系統因素。

硬碟

速度在快取處理過程中扮演很重要的角色,因此應該特別注意這個因素。對硬碟而言,此參數可稱為「隨機搜尋時間」,以毫秒為單位。因為 Squid 所讀取或寫入硬碟的資料區塊通常都相當的小,所以硬碟的搜尋時間比其資料輸送量還要重要。如果要使用代理,最好選擇具有高旋轉速的硬碟,因為這種硬碟可以較快的速度將讀寫頭放置在所需的位置。有一個方法可能可以增加系統的速度,就是同時使用多個磁碟或是運用分段 RAID 陣列。

磁碟快取的大小

在小的快取記憶體中,HIT (發現要求的物件已在該處) 的機率比較小,因為快取記憶體很容易就會填滿,且新的物件會取代不太被要求的物件。例如,如果快取有 1 GB 可用,而且使用者一天只瀏覽 10 MB,則需要一百天以上才能將快取填滿。

決定所需快取記憶體大小的最簡易方法為,考量連線的最大傳輸速率。連線速率為 1 Mbit/s 時,其最大的傳輸速率為 125 125 KB/s。如果所有這些流量最後都保留在快取記憶體中,則 1 個小時內就會增至 450 MB,假設所有的流量都只在 8 個工作小時中產生,則一天就可達到 3.6 GB。由於連線一般都不會用到其容量上限,因此可以假設快取記憶體所處理的總資料容量大約為 2 GB。這就是為什麼範例中 Squid 需要 2 GB 的磁碟空間,以快取一天中已瀏覽的資料量。

RAM

Squid 所需的記憶體容量 (RAM) 與快取記憶體中的物件數目直接相關。Squid 也會將快取記憶體物件的參照以及常要求的物件儲存在主記憶體中以加速此資料的擷取速度。隨機存取記憶體比硬碟的速度快很多。

除此之外,Squid 需要在記憶體中保留其他的資料,例如所有已處理 IP 位址的表格、精確的網域名稱快取、最常要求的物件、存取控制清單、緩衝區等等。

為 Squid 處理程序保留足夠的記憶體是非常重要的,因為若使用磁碟進行交換,系統效能就會大幅地降低。cachemgr.cgi 工具可用於快取記憶體管理。此工具會在第 41.6 節「cachemgr.cgi」 中加以介紹。網路流量龐大的網站應該考量使用配備超過 4 GB 記憶體的 AMD64 或 Intel 64 系統。

CPU

Squid 不是一個需要密集使用 CPU 的程式。只有在載入或檢查快取記憶體的內容時,才會增加處理器的負載。使用多處理器的機器並不能提升系統的效能。若要提升效率,最好買更快的磁碟或新增更多的記憶體。