29.2. 系統需求

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

29.2.1. 硬碟

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

29.2.2. 磁碟快取的大小

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

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

29.2.3. RAM

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

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

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

29.2.4. CPU

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