2012-04-18 3 views
1

Я выбираю Spymemcached как memcached java-клиент, поскольку я нахожу, что это установленный метод без ответа, кажется, в десять раз быстрее других клиентов memcached.Как я могу реализовать 280qps между memcached-клиентом и сервером?

мой код:

memcachedClient.set (ключ, 0, значение);

вместо:

memcachedClient.set (ключ, 0, значение) .get();

Мне очень важно, чтобы время было намного больше, чем результат набора.

Теперь это выглядит намного быстрее, но, вероятно, утечка памяти происходит на сервере memcached.

Он выполняет задачу памяти 2G для каждого клиентского процесса memcached при запуске 4 на том же компьютере с сервером memcached. И 8-ядерный процессор и 4G-память почти полностью поглощены. Локальный сетевой интерфейс «lo» составляет всего около 0,2 Гбит/с.

Как я могу снизить расход процессора и памяти и даже ускорить qps с memcached.

Мне нужно 280k qps от memcached клиента, каждый qps посылает данные с длиной ключа 50B и длиной значения 500B. Теперь я пытаюсь запустить клиент memcached на локальном хосте, чтобы избежать ограничения пропускной способности сетевого интерфейса. С четырьмя процессами memcahced каждый из них запускает 6 потоков, теперь я могу почти реализовать 180qps, что далеко от моей цели, а процессор и память превращаются в ограничение. И мне также нужно запускать шторм на том же компьютере, который содержит настоящий java memcached-клиент. Поэтому, конечно, я не могу позволить клиентам memcached брать основные ресурсы.

Как уменьшить потребление процессора и памяти, или как я могу реализовать 280qps между несколькими java memcached клиентами на одном компьютере и распределенным сервером memcached.

И получается, и наборы берут половину запросов. Могу ли я попробовать getMulti каждый раз получать по 50 ключей. Но вопрос все еще существует.

Ожидая ваших добрых ответов.Спасибо!

ответ

Смежные вопросы