2014-06-24 112 views
2

我不完全確定這個問題是否會更適合類似於Serverfault - 但是,因爲我是程序員,而不是系統管理員,所以我從程序員的角度來問。Web服務器緩存 - 內存與操作系統

這些天有很多選項可用於緩存靜態網頁內容。像油漆或魷魚這樣的行業在整個行業中都有使用。

但是,我在這裏有點困惑。從理論的角度來看,我看不到如何緩存內容需要使用除網絡服務器和操作系統之外的第三方軟件。動態內容(例如,昂貴的PHP腳本計算的結果等)當然可以從良好的緩存系統中受益。

但是對於靜態內容,我們通過在內存中緩存資源獲得什麼?操作系統頁面緩存已經是否提供了像Varnish或Squid這樣的專用緩存系統的相同優勢?或者我錯過了一些好處?

實際上,光油使用mmap將數據存儲在虛擬內存中 - 讓操作系統處理頁面交換。那麼,這與將緩存資源保存到磁盤並使用fread打開它們完全不同?

回答

1

你是對的。對於靜態資源,內存也可以用於頁面緩存而不是使用Varnish。

爭奪相同資源(服務器內存)的相同內容的鏈接緩存(varnish,pagecache)是愚蠢的。

如果您另外有一些動態內容,您可以選擇合併並提供緩存中的所有內容,這是出於操作原因。例如,從單個軟件堆棧收集訪問日誌和統計信息比兩個更簡單。這也適用於員工培訓和安全補丁等事情。