Varnish

對記憶體解決方案感到困惑:MemCache、Varnished、mod_cache 還是其他?

  • September 23, 2011

我的伺服器中有一個非常重的站點。伺服器的負載總是在 30-50 左右,有時甚至會變成 150,伺服器工作非常努力。我正在尋找一種可以提高伺服器性能並減少伺服器負載的記憶體解決方案。

但我不知道我應該使用哪種記憶體解決方案?順便說一句,我正在使用 Drupal CMS,並且我有 WHM/CPanel

以下是我找到的選項: 1- Memcached 2- Varnish 3- Apache mod_cache

有人可以給我一些關於這些平台的比較或指導嗎?Apache 的 mod_cache 和 Varnish 一樣好用嗎?因為在 cPanel / WHM 中安裝和配置 Varnish 一點也不復雜。雖然我讀過關於清漆的非常好的評論。

我正在尋找可以直接配置且不復雜的最佳記憶體解決方案。我將不勝感激任何幫助或評論。

以下是我找到的選項: 1- Memcached 2- Varnish 3- Apache mod_cache

警告:您知道為什麼您的負載如此之高嗎?如果負載是由生成動態內容所需的高 CPU 負載引起的,並且您能夠從記憶體中提供該內容,那麼記憶體解決方案可能會對您有所幫助。但是,如果負載是由 i/o 爭用引起的,或者如果您正在提供無法修改記憶體的個性化內容,那麼記憶體解決方案可能無濟於事。

通常,記憶體需要大量記憶體才能有效。如果您的系統已經受到記憶體限制,那麼在其上放置記憶體軟體可能會加劇您的問題。

  • 記憶體記憶體

Memcached 本身不會幫助您。也就是說,與 Varnish 和 Apache 的 mod_cache 不同,Memcached 不是您可以簡單地站在現有應用程序前面的東西。

Memcached 是一個非常快速的鍵/值數據儲存,應用程序可以使用它來加速各種操作。一個常見的例子是需要進行數據庫查詢的數據庫:如果可以將結果記憶體一段時間,那麼 memcached 提供的結果可能比後端數據庫快得多。

如果您的伺服器負載主要是自定義程式碼的結果,那麼修改您的程式碼以利用 memcached 可以產生巨大的好處。

  • Varnish 和 Apache 的 mod_cache

這兩者都可以用來加速動態內容的傳遞。

在這兩者中,Varnish 是一種專門設計為內容加速器*的工具。*它只做一件事,但就聲譽而言,它做得很好。配置語言是一個 C 子集,它被編譯並載入到正在執行的 Varnish 程序中;這本身沒有好壞之分,但我更喜歡聲明性語言。

Apache 的 mod_cache 也可以用作內容加速器。mod_cache 有兩個優點:

  • 如果您已經在執行 Apache,您將熟悉 mod_cache 使用的配置。
  • 您可以將 mod_cache 與其他 Apache 模組(例如 mod_rewrite 和 mod_header)結合起來創建一個非常靈活的配置。另一方面,你的表現可能不如 Varnish 提供的那麼好。我實際上沒有任何數字來支持這一點,但它們可能就在那裡(尋找它們——不要相信我的話!)。

如果您調整後端應用程序以提供記憶體友好的內容,這兩種產品的效果最好。這意味著適當的記憶體標頭、可記憶體內容上沒有 cookie、適當的 max-age 或過期標頭等。

確保您首先了解您的問題:找出導致高負載的原因。然後嘗試一種或多種這些解決方案,看看會發生什麼。

引用自:https://serverfault.com/questions/314644