1.設計網站初期
假設網站有6w個動态内容處于頻繁通路的狀态,通過Cache-Control将它的反向代理伺服器上的緩存有效期都設定成60秒,這樣後端伺服器必須承受最多每秒處理1000個動态内容的工作量,如果這些動态内容都進行完整的計算(例如通路資料庫),那麼後端壓力很大,我們可以設定緩存有效期延長到300秒(5分鐘)這樣後端每秒隻處理200個動态内容。
計算公式 每秒總共通路的動态内容數/緩存有效期 = 後端每秒處理的動态内容數
2. 緩存命中率和後端吞吐率的理想計算模型
先假設三個條件
1.緩沖區的空間足夠大,那麼緩存永遠不會因為空間已滿而被淘汰,除非到達緩存有效期後主動離開。
2.站點擁有一定數目的活躍内容,而這麼内容都可以被反向代理緩存,同時我們假設一個平均緩存有效期
3.以上活躍内容在每個緩存有效周期内至少被通路一次
涉及到的幾個變量
1.活躍内容數
2.實際吞吐率
3.平均緩存有效期
緩存有效周期内的實際請求次數為
一個緩存有效周期内的實際請求次數 = 實際吞吐率 X 平均緩存有效期
緩存丢失率
緩存丢失率 = (活躍内容數 / (實際吞吐率 X 平均緩存有效期)) X 100%
緩存命中率
緩存命中率 = 1 - (活躍内容數 / (實際吞吐率 X 平均緩存有效期)) X 100%
例子:
假設站點有1個活躍内容,即是index.htm,實際吞吐率為10reqs/s,我們把反向代理緩存有效期設定為10秒,那麼緩存命中率為
緩存命中率 = 1 - (1/(10X10)) X 100% = 99%
後端吞吐率為
後端吞吐率 = 活躍内容數 / 平均緩存有效期
例如後端吞吐率 = 1/10 = 0.1reqs/s
緩存命中率 = 1 - (後端吞吐率 / 實際吞吐率)) X 100%
後端吞吐率 = (1 - 緩存命中率) X 實際吞吐率
結論:
1.活躍内容數和平均緩存有效期一定的情況下,緩存命中率和實際吞吐率成正比
2.實際吞吐率和平均緩存有效期一定的情況下,緩存命中率和活躍内容數成反比
3.活躍内容數和實際吞吐率一定的情況下,緩存命中率和平均緩存有效期成正比
4.活躍内容數一定的情況下,後端吞吐率與平均緩存有效期成反比
5.平均緩存有效期一定的情況下,後端吞吐率和活躍内容數成正比
6.緩存命中率的變化不一定會影響後端吞吐率
7.後端吞吐率的變化不一定會影響緩存命中率