Вопрос производительности Enyim - PullRequest
0 голосов
/ 15 июня 2011

Я использую enyim для предоставления доступа к мембранному серверу для многопоточных программ чтения очереди.Эти читатели получают доступ к очереди AQMP, проверяют кэш, чтобы увидеть, был ли элемент уже обработан, и если нет, вставляет его в базу данных и в кэш.Проблема в том, что доступ к кешу съедает процессор.При 4-х потоках обработки сообщений загрузка процессора составляет 80-90%.Я реализовал собственный сериализатор, который передает байты в enyim.Если я переключаюсь в свою память, я могу вернуться к 9 потокам, прежде чем загрузка ЦП станет высокой.Единственная разница с кэшированием в памяти и мембранным кэшем заключается в том, что байты хранятся в памяти, а не в кэше.Любая идея о том, что я мог делать не так с eynim, что может быть причиной высокой загрузки процессора или это нормально?На максимуме клиенты выполняют около 2,5 тыс. Операций в секунду в соответствии с мембранной консолью.

1 Ответ

0 голосов
/ 27 июня 2011

Одна известная «горлышко бутылки» создает новый MembaseClient каждый раз, когда вы хотите получить доступ к кешу. Рекомендуется создать один экземпляр MembaseClient и передать тот же экземпляр. Проверьте эту ссылку для деталей об этом:

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

...