xmemcached發(fā)布1.10 RC3(附最新測(cè)試結(jié)果)
Posted on 2009-05-09 15:42 dennis 閱讀(1395) 評(píng)論(2) 編輯 收藏 所屬分類: java 、my open-source 在某用戶(可能是唯一用戶)的反饋和建議下,xmemcached做了不少改進(jìn)和修正,特此感謝。
XMemcached發(fā)布1.10-RC3,這可能是1.10 release前最后一個(gè)RC版本,此版本的主要改進(jìn):
1、引入XMemcachedClientMBean接口,添加一個(gè)新的MBean,主要功能是允許通過JMX動(dòng)態(tài)添加或者移除memcached server。如圖:

除了通過JMX之外,也可以通過編程來(lái)動(dòng)態(tài)添加或者移除memcachd server節(jié)點(diǎn)。例如:
2、引入新的cas重載方法,允許用戶自主傳入GetsResponse(gets協(xié)議的返回結(jié)果),而不需要xmemcached去自動(dòng)獲取首次gets結(jié)果。
3、重構(gòu)和修改bug等,重命名transcoder包防止與spymemcached沖突,更多單元測(cè)試和相應(yīng)重構(gòu)。
4、附帶最新的測(cè)試結(jié)果
測(cè)試環(huán)境:
服務(wù)端:memcached server跑在4核,4G內(nèi)存的linux機(jī)器上,linux內(nèi)核是2.6.9-55。 memcached啟動(dòng)參數(shù):memcached -p 12000 -m 2048 -d
客戶端:跑在8核,16G內(nèi)存的linux機(jī)器上,內(nèi)核是2.6.9-67。xmemcached版本是1.10-RC3,spymemcached的版本是2.3.1,兩者都是默認(rèn)配置。
測(cè)試用例: key和value都是100個(gè)字節(jié)的字符串,啟動(dòng)N個(gè)線程并發(fā)地操作同一個(gè)memcached client,進(jìn)行set、get、delete操作,各操作總次數(shù)均在100萬(wàn)次以上,最后統(tǒng)計(jì)TPS。
具體結(jié)果請(qǐng)看下面



結(jié)果說(shuō)明:
圖片采用jfreechart生成,spymemcached在100個(gè)并發(fā)及以上,get操作無(wú)法設(shè)置超時(shí)時(shí)間導(dǎo)致拋出很多超時(shí)異常,因此無(wú)法給出有價(jià)值的數(shù)據(jù)。
下載地址在這里
XMemcached發(fā)布1.10-RC3,這可能是1.10 release前最后一個(gè)RC版本,此版本的主要改進(jìn):
1、引入XMemcachedClientMBean接口,添加一個(gè)新的MBean,主要功能是允許通過JMX動(dòng)態(tài)添加或者移除memcached server。如圖:

除了通過JMX之外,也可以通過編程來(lái)動(dòng)態(tài)添加或者移除memcachd server節(jié)點(diǎn)。例如:
XMemcachedClient client
//添加server
client.addServer("192.168.111.222:11211 192.168.111.221:11211");
//移除
client.removeServer("192.168.111.222:11211 192.168.111.221:11211");

//添加server
client.addServer("192.168.111.222:11211 192.168.111.221:11211");
//移除
client.removeServer("192.168.111.222:11211 192.168.111.221:11211");
2、引入新的cas重載方法,允許用戶自主傳入GetsResponse(gets協(xié)議的返回結(jié)果),而不需要xmemcached去自動(dòng)獲取首次gets結(jié)果。
<T> boolean
cas(java.lang.String key, GetsResponse<T> getsReponse, CASOperation<T> operation)
<T> boolean
cas(java.lang.String key, GetsResponse<T> getsReponse, CASOperation<T> operation)
cas(java.lang.String key, GetsResponse<T> getsReponse, CASOperation<T> operation)
<T> boolean
cas(java.lang.String key, GetsResponse<T> getsReponse, CASOperation<T> operation)
3、重構(gòu)和修改bug等,重命名transcoder包防止與spymemcached沖突,更多單元測(cè)試和相應(yīng)重構(gòu)。
4、附帶最新的測(cè)試結(jié)果
測(cè)試環(huán)境:
服務(wù)端:memcached server跑在4核,4G內(nèi)存的linux機(jī)器上,linux內(nèi)核是2.6.9-55。 memcached啟動(dòng)參數(shù):memcached -p 12000 -m 2048 -d
客戶端:跑在8核,16G內(nèi)存的linux機(jī)器上,內(nèi)核是2.6.9-67。xmemcached版本是1.10-RC3,spymemcached的版本是2.3.1,兩者都是默認(rèn)配置。
測(cè)試用例: key和value都是100個(gè)字節(jié)的字符串,啟動(dòng)N個(gè)線程并發(fā)地操作同一個(gè)memcached client,進(jìn)行set、get、delete操作,各操作總次數(shù)均在100萬(wàn)次以上,最后統(tǒng)計(jì)TPS。
具體結(jié)果請(qǐng)看下面



結(jié)果說(shuō)明:
圖片采用jfreechart生成,spymemcached在100個(gè)并發(fā)及以上,get操作無(wú)法設(shè)置超時(shí)時(shí)間導(dǎo)致拋出很多超時(shí)異常,因此無(wú)法給出有價(jià)值的數(shù)據(jù)。
下載地址在這里