Локальная AppFabric и Local Memcache - строго говоря - PullRequest
4 голосов
/ 23 октября 2011

На работе мы обсуждаем возможность выделения выделенного сервера кеш-памяти. Два варианта - Windows AppFabric Cache Server и Memcached. Поэтому я настроил два теста, один для AppFabric и один для Memcache.

тесты Memcache OS / Appliance Memcache VMWare Appliance Виртуализировано на рабочей станции VMWare, Quad Core с 8 ГБ оперативной памяти с помощью MemCachedDOTnet_2.0 C # API.

После того, как я поместил несколько объектов в кеш, я начал свои тайминги и получил в среднем.

  • Поставить 0-1MS (точность была только в миллисекундах)
  • Получите 14-15MS

Сервер AppFabric Cache Нет ВМ, потому что все его окна. Четырехъядерный процессор с 8 ГБ оперативной памяти. То же самое я передал несколько объектов в кеш, прежде чем начал работать. Опция Local Cache была отключена в настройках клиента.

  • поставить 0-1MS (точность была только до миллисекунд)
  • Получить 0-1 мс (точность была только до миллисекунд)

Теперь вопрос в том, что я слышал, что MemCached работает очень быстро, но я предположил, что он быстрее, чем AppFabric, но не на 15 мс медленнее в Gets vs AppFabric. Какова производительность всех остальных для AppFabric и / или MemCache. Я просто ищу необработанные числа MS и размер объекта или вещи, на которые мне следует обратить внимание, чтобы увидеть, могу ли я сделать так, чтобы числа совпали с моими ожиданиями или вариантами установки или проверки.

Ответы [ 2 ]

3 голосов
/ 15 июня 2012

Я вижу, что вы включили локальный кеш в Appfabric. Когда локальный кеш включен, клиент кеша хранит ссылку на объект локально. Это сохраняет объект активным в памяти клиентского приложения. Когда приложение запрашивает объект, клиент кэша сначала проверяет, находится ли объект в локальном кэше. Если это так, ссылка на объект возвращается немедленно, без связи с сервером. Если он не существует, объект извлекается с сервера. После сохранения объектов в локальном кеше ваше приложение продолжает использовать эти объекты до тех пор, пока они не станут недействительными, независимо от того, были ли эти объекты обновлены другим клиентом в кластере кеша. По этой причине лучше использовать локальный кэш для данных, которые изменяются нечасто.

Поскольку у вас включен локальный кэш, объект был возвращен немедленно, без связи с кластером. Если ваши данные часто изменяются и у вас низкий допуск на устаревшие данные, локальный кэш должен быть отключен. Попробуйте те же тесты на Windows Server Appfabric 1.1 с отключенным локальным кэшем.

1 голос
/ 23 октября 2011

Почему бы вам не протестировать версию memcached для windows, чтобы сравнить яблоки с яблоками? Когда вы запускаете один из них в виртуальной машине, вы также получаете накладные расходы на дополнительную ОС ..

...