2012-04-18 60 views
1

我選擇Spymemcached作爲memcached java客戶端,因爲我發現它的設置方法沒有回覆,似乎比其他memcached客戶端快十倍。如何才能實現memcached客戶端和服務器之間的280qps?

我的代碼:

memcachedClient.set(鍵,0,值);代替

memcachedClient.set(鍵,0,值)獲得();

我確實關心時間成本遠遠超過了設置的結果。

現在看起來好多了,但memcached客戶端可能會發生內存泄漏。

當我在使用memcached服務器的同一臺計算機上運行4時,它針對每個memcached客戶端進程的2G內存任務。 8核心CPU和4G內存幾乎完全消耗。本地網絡接口「lo」僅約爲每秒0.2Gbits。

如何降低CPU和內存消耗率,甚至加速memcached qps。

我需要從memcached客戶端280k qps,每個qps發送50B密鑰長度和500B值長度的數據。現在我嘗試在本地主機上啓動memcached客戶端,以避免網絡接口帶寬的限制。有四個memcahced進程,每個運行6個線程,現在我幾乎可以實現180qps,這遠離我的目標,CPU和內存變成了限制。而且我還需要在包含真正的Java memcached客戶端的同一臺計算機上運行風暴。所以我當然不能讓memcached客戶端佔用核心資源。

如何減少cpu和內存消耗,或者如何在一臺計算機上的幾個Java memcached客戶端和分佈式memcached服務器之間實現280qps。

get和set都佔用一半的查詢。也許我可以嘗試getMulti來每次獲取50個鍵。但問題仍然存在。

期待您的回覆。謝謝!

回答

相關問題