0

我正在使用 enyim 为多线程队列读取器提供对 membase 服务器的访问。这些读取器访问 AQMP 队列,检查缓存以查看该项目是否已被处理,如果没有,则将其插入数据库和缓存中。问题是访问缓存会占用 CPU。使用 4 个线程处理消息,CPU 为 80-90%。我已经实现了一个自定义序列化程序,它将字节提供给 enyim。如果我切换到我的内存回退,我可以在 CPU 使用率变高之前达到 9 个线程。内存缓存和 membase 缓存的唯一区别是字节存储在内存中而不是缓存中。知道我可能对 eynim 做错了什么,这可能导致 CPU 使用率很高还是正常的?客户端最多执行大约 2 个。

4

1 回答 1

0

一个已知的瓶颈是每次您想要访问缓存时都创建一个新的 MembaseClient。建议是创建一个 MembaseClient 实例并传递相同的实例。检查此链接以获取有关它的详细信息:

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

于 2011-06-27T04:14:08.797 回答