1

我选择 Spymemcached 作为 memcached java 客户端,因为我发现它的 set 方法没有回复似乎比其他 memcached 客户端快十倍。

我的代码:

memcachedClient.set(key,0,value);

代替:

memcachedClient.set(key,0,value).get();

我确实关心时间成本比设置的结果要多得多。

现在看起来快了很多,但内存泄漏很可能发生在 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 客户端的同一台计算机上运行storm。所以我当然不能让 memcached 客户端占用核心资源。

如何减少cpu和内存消耗,或者如何实现单台计算机上的多个java memcached客户端与分布式memcached服务器之间的280qps。

获取和设置都占用了一半的查询。也许我可以尝试 getMulti 每次获取 50 个键。但问题仍然存在。

期待您的回复。谢谢!

4

1 回答 1

0

您可能想查看https://groups.google.com/forum/?fromgroups#!topic/memcached/n8zLJRyYNY4以使用 memcached 优化多获取查询。

于 2013-06-07T05:09:20.990 回答