PHPConf@2014 心得分享 - HTTP accelerator - Varnish 應用

RojerChen.2014.10.19

講者 Ninja 目前在台灣新浪工作,主要是的工作內容大概是讓新浪微博的資料能夠有效的再利用。由於網站的資料量龐大,想要增加 Apache 的 throughput ,是可以把資料轉換成 HTML,讓 Apache 運作的效能夠加,只是會有一些問題:
  1. 轉檔資料過多,轉檔還沒轉完就有新的資料進來
  2. 當網站有改版、活動,會造成新舊版型交錯



因為上述一些因素的影響,最後採用了 Varnish ,Varnish 是 Reverse Proxy Server,可以用來減少 Apache & PHP 資源上的耗損,當有重複的資料進來,直接 Hit,不需要再透過 Apache 和 PHP 處理,直接將資料吐回給使用者。


使用 Load Balance 雖然讓資源有效分散,但是卻讓 Varnish 的 Hit Rate 也分散到各台主機上,每台主機要設定相對應的快取大小,也浪費了快取的空間。


當瞬間的資料量過於龐大,前面的 Varnish 吃不下來會讓系統架構 Crush 掉,一台 Varnish Crush 資料會瞬間導到另一台,讓另一台也一起 Crush 掉


最後,在每台機器再加上 Varnish ,當瞬間資料進來過大,後面還有緩衝可以把資料吃下來。


內部網路環境測試狀況,雖然不像官網說的那樣誇張,不過對效能是有改善的



當網站有活動或資料不需要快取時,可以透過  Header 來決定是否要快取



Debug 的時候,可以透過此方法來確認資料是否有快取到


殘念,沒有提供 SSL,目前講者他們的作法好像是先把 HTTPS 的網頁內容資訊先轉成純文字,然後做一些處理再轉給前端?




    Blogger Comment

1 意見:

匿名 提到...

用apache traffic server就解了...