2011-06-14 27 views
0

我正在使用enyim爲多線程隊列讀取器提供對membase服務器的訪問。這些閱讀器訪問AQMP隊列,檢查緩存以查看該項目是否已處理,以及是否將其插入到數據庫和緩存中。問題是訪問緩存會佔用CPU。使用4個線程處理消息,CPU處於80-90%。我已經實現了一個自定義序列化器,它向enyim提供字節。如果我在內存中切換回內存,並且在CPU使用率變高之前可以上升至9個線程。與內存中緩存和membase緩存唯一的區別在於,字節被存儲在內存中而不是緩存中。任何想法,我可能會做錯eynim可能會導致這種高CPU使用率或正常?根據membase控制檯,最大客戶端執行約2.5k ops/s。Enyim性能問題

回答

0

每當您想要訪問緩存時,一個已知的瓶頸就是創建一個新的MembaseClient。建議做一個MembaseClient實例並傳遞相同的實例。檢查此鏈接,詳細瞭解它:

https://github.com/enyim/EnyimMemcached/wiki/MembaseClient-Usage

+0

標誌着我這個正確的,但最終我們試圖使用Membase的對錯誤的事情。將內存中的值存儲到提供的大部分速度差中以更改爲membase。這是有道理的,因爲沒有涉及序列化或套接字。 – Carlosfocker 2011-09-07 16:51:55