Posted on 2010-10-17 13:44
dennis 閱讀(4201)
評論(0) 編輯 收藏 所屬分類:
java 、
my open-source
Xmemcached 1.2.6.1 released,所以更新了一下
Java Memcached Client Benchmark。對比下
Xmemached,
Spymemcached和
Java-Memcached-Client這三個開源客戶端的性能,具體的測試信息可以看這個
鏈接。
測試源碼
svn co http://xmemcached.googlecode.com/svn/trunk/benchmark/
測試結果:
svn co http://xmemcached.googlecode.com/svn/trunk/benchmark/result
總結下測試結果,為還在選擇和考察
java memcached client的朋友提供參考:
1、
Java-Memcached-Client 2.5.1這個版本果然有很大改進,性能上有非常大的提升,從測試結果來看在小于100并發下有非常明顯的優勢,同時耗費資源也相對較多。但是在300并發訪問下,Java-Memcached-Client會不斷地報錯:
com.schooner.MemCached.SchoonerSockIOPool Sun Oct 17 11:09:05 GMT+08:00 2010 - ++++ failed to get SockIO obj for: 10.232.36.82:12000
com.schooner.MemCached.SchoonerSockIOPool Sun Oct 17 11:09:05 GMT+08:00 2010 - ++++ failed to get SockIO obj for: 10.232.36.82:12000
com.schooner.MemCached.SchoonerSockIOPool Sun Oct 17 11:09:05 GMT+08:00 2010 - ++++ failed to get SockIO obj for: 10.232.36.90:12000
com.schooner.MemCached.SchoonerSockIOPool Sun Oct 17 11:09:05 GMT+08:00 2010 - ++++ failed to get SockIO obj for: 10.232.36.82:12000
com.schooner.MemCached.SchoonerSockIOPool Sun Oct 17 11:09:05 GMT+08:00 2010 - ++++ failed to get SockIO obj for: 10.232.36.90:12000
com.schooner.MemCached.SchoonerSockIOPool Sun Oct 17 11:09:05 GMT+08:00 2010 - ++++ failed to get SockIO obj for: 10.232.36.82:12000
并且無法正常地存取數據, 而xmc和spy卻可以正常應對這一場景。因此可以看到在300并發下,Java-Memcached-Client測試的結果直接為0,因為測試無法完成。盡管我嘗試將最大連接數調到2000,仍然是無法完成測試。
2、
Xmemcached無論在低并發還是高并發訪問的情況下,都可以保持一個比較優秀的性能表現,從xmc和spy的對比來看,xmc的優勢相當大。
3、
從用戶選擇角度來說,如果你的應用對memached的訪問負載并不高,Java-Memcached-Client是一個不錯的選擇,但是在高峰訪問的時候可能命中率會有個急劇的波動;如果你的應用訪問memached的負載較高,此時我推薦你選擇xmemcached;如果你需要異步的批量處理(future模式),可以選擇spymemcached;如果你不知道你的應用是什么狀況,我推薦你用xmemcached,可以在任何情況下獲得一個比較好的性能表現。