2011-10-23 66 views
4

在工作中,我們正在討論專用內存緩存服務器的可能性。這兩種選擇是Windows AppFabric Cache Server和Memcached。所以我設置了兩個測試,一個用於AppFabric,一個用於Memcache。本地AppFabric和本地Memcache - 嚴格的性能演講

內存緩存測試 OS /設備 Memcache VMWare Appliance 在VMWare工作站,四核虛擬化和與MemCachedDOTnet_2.0 C#API RAM 8GB的。

當我將一些物體放入緩存後,我開始計時,平均得到了。

  • 認沽0-1MS(準確率只有毫秒)
  • 獲取14-15MS

AppFabric的緩存服務器 沒有VM,因爲它的所有窗口。四核與8gb內存。 同樣的事情,我開始工作之前,我推了幾個對象緩存。本地緩存選項已在客戶端設置中禁用。

  • 認沽0-1MS(準確率只有毫秒)
  • 獲取0-1ms(準確率只有毫秒)

現在的問題是我聽到Memcached是超級快,但我認爲它比AppFabric快,但在Gets vs AppFabric上速度不會慢15ms。對於AppFabric和/或MemCache,其他人的表現如何?我只是尋找原始數據的MS和對象大小或我應該看看的東西,看看我能否讓數字排列更符合我的期望或選項來設置或檢查。

+0

我已經非常成功地使用了AppFabric,並且發現它在高流量場景中表現非常好,並且有數千個併發連接。也就是說,我也覺得memcache似乎表現如此糟糕,令人驚訝。我以前從來沒有過MemCachedDOTnet_2.0,所以也許這也可能是瓶頸,儘管我的第一次預感肯定是虛擬機。 – s1mm0t

+0

@ s1mm0t我應該儘管我正在使用的客戶端。我會嘗試再多抓一些,然後編輯問題,一旦我有了更多的結果,就可以在上面列出它們。 – Josh

+0

josh不是在虛擬機上運行Memcache,而是嘗試在基於* nix的機器上運行它,然後運行比較測試。 Memcache主要在* nix系統上運行。 Windows端口已經使它在Windows環境中工作。這並不是說它在將Windows用作主機時表現出最佳性能。另外,如果您嘗試了下面的Prathul的建議,您能否告訴我們結果? – user20358

回答

1

爲什麼不測試windows版本的memcached,以便比較蘋果和蘋果?當你在虛擬機上運行其中一個虛擬機時,你也會得到額外操作系統的開銷。

+0

1.從memcached的windows端口「這個端口不被官方memcached團隊支持」。 2.我知道額外的操作系統會有額外的開銷,但是如果put是0-1ms而get是14-15ms,那麼看起來開銷可能與軟件而不是VM層相關。 3.在工作中,任何解決方案都將存放在虛擬機中,所以開銷始終存在。 – Josh

3

我看到你已經在Appfabric上啓用了本地緩存。當啓用本地緩存時,緩存客戶端在本地存儲對該對象的引用。這使對象在客戶端應用程序的內存中保持活動狀態。當應用程序請求對象時,緩存客戶端首先檢查對象是否駐留在本地緩存中。如果是這樣,那麼對該對象的引用將立即返回而不與服務器聯繫。如果它不存在,則從服務器檢索該對象。將對象存儲在本地緩存中後,應用程序將繼續使用這些對象,直到它們失效,而不管這些對象是否由緩存羣集中的另一個客戶端更新。出於這個原因,最好使用本地緩存來處理不經常更改的數據。

由於您啓用了本地緩存,因此該對象立即返回而不與羣集聯繫。如果您的數據頻繁更改並且對陳舊數據的容忍度較低,則應禁用本地緩存。在禁用本地緩存的情況下,在Windows Server Appfabric 1.1上嘗試相同的測試。

+0

我認爲這是正確的答案! – Calvin