2010-06-18 49 views
6

我想知道Memcached在磁盤緩存的遠程服務器(在同一個局域網上)的性能。除Memcached是一個可擴展的緩存解決方案,會有使用Memcached相對於性能與磁盤緩存相比。MemCached與磁盤緩存的性能比較

Regards, Mugil。

回答

7

從我個人的經驗來看,memcached並沒有磁盤緩存那麼快。我相信這是因爲操作系統的磁盤IO緩存,但memcached允許「可擴展」的緩存,這意味着如果你有超過1臺服務器訪問相同的緩存數據,它將會擴展(尤其是因爲memcached的CPU開銷比較低到PHP)。允許多臺機器同時訪問磁盤緩存的唯一方法是網絡安裝,這肯定會消除訪問速度。另外一件你不得不擔心的文件緩存是垃圾收集,以防止磁盤飽和。當您的網站規模擴大時,您可能想稍後改變主意,因此無論您做出什麼選擇,都可以使用緩存包裝器,以便您輕鬆更改方法。 Zend提供了一個good API

2

讀取速度大致相同(因爲操作系統會緩存經常訪問的文件)......區別在於寫入。有了memcached,它所需要做的就是編寫內存。但是對於文件存儲,它會變得更加棘手。如果您啓用了寫入緩存,則速度將會一樣快。但是大多數服務器都會關閉它(除非它們有電池支持的緩存),以便在電源故障時進行更可靠的寫入。因此,如果你的系統沒有使用寫入緩存,那麼在返回之前,需要在磁盤上完成寫入操作(在服務器級驅動器上可能需要5ms以上,可能在桌面級硬件上更多)。所以編寫文件可能會比memcached慢得多。

但還有另一個caviat。有了文件,當你想寫的時候,你需要自己鎖定文件。這意味着如果兩個進程嘗試寫入同一個文件,則寫入操作必須連續完成。使用memcached時,這兩個寫入會按照接收到的順序進入隊列,但寫入過程(PHP)不需要等待實際提交...