Решение для обновления домена приложения: AppFabric, какова производительность

В настоящее время мы сталкиваемся с проблемами из-за большого количества кэшированных объектов. Мы кэшируем данные из системы ERP (для интернет-магазина), и IIS обновляет веб-страницу, когда она достигает максимального объема памяти, и мы теряем все кэшированные объекты. Поскольку это делает идею кэширования немного проблематичной, мы ищем решение для кэширования объектов с другим решением.

Я обнаружил, что AppFabric от Microsoft, поскольку он уже включен в наши лицензии Windows Server, является довольно удобным решением.

Однако я все еще опасаюсь, что у нас будут огромные проблемы с производительностью при использовании AppFabric Velocity вместо класса MemoryCache (наше текущее решение для кэширования).

Итак, мой вопрос: является ли это решением нашей проблемы, или я слишком много думаю, и достаточно ли быстро работает AppFabric?


person Kevin Boss    schedule 21.05.2013    source источник


Ответы (2)


Компания Grid Dynamics сделала отличный отчет об использовании AppFabric здесь. Хотя я не знаю цифр для ваших конкретных операций с кэшем, в отчете показаны отличные показатели производительности для AppFabric. В одном тесте они хотели увидеть, как размер кеша влияет на производительность операций с кешем. При простом чтении данных это практически не влияло на производительность операций кэширования. При обновлении влияние на производительность кэш-операций было, но не до смешного. При тестировании размера объекта и производительности, очевидно, что более крупные объекты снижали производительность (в данном случае пропускную способность). В целом отчет содержит надежные тесты и статистику, которые показывают, что производительность AppFabric Cache превосходна.

Нет, Grid Dynamics не сравнивает результаты с другими продуктами, но показывает, какова производительность AppFabric Cache в различных тестах. У них есть особенно полезный раздел «Приложения», в котором можно найти подробную информацию, чтобы помочь людям в различных сценариях использования.

Как всегда, использование решения, которое находится не на том же компьютере, что и экземпляр IIS, добавит немного времени на выборку данных сеанса из кэша, но мы говорим о небольшом количестве времени.

person Jon Carl    schedule 22.05.2013
comment
Вы должны включить некоторые соответствующие резюме статьи, а не просто ссылку. Что говорится в отчете о различиях в производительности между AF и использованием MemoryCache? Прямо сейчас это не отвечает на вопрос. - person Esoteric Screen Name; 22.05.2013
comment
Дело принято. Добавил немного резюме. - person Jon Carl; 22.05.2013
comment
О, отлично, это то, что я искал. - person Kevin Boss; 23.05.2013

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

Appfabric — не очень зрелый продукт в этом отношении, особенно когда речь идет о кеше «inproc». Вам понадобится клиентский кеш, который на самом деле является подмножеством распределенного кеша (имеется в виду все кешированные объекты), который находится «в процессе» и синхронизируется с распределенным кешем.

Я рекомендую использовать NCache в качестве распределенного кэша и использовать его функцию кэширования clinet для ваши объекты ERP.

person Andy H    schedule 22.05.2013
comment
Проблема в том, что нам нужно постоянно кэшировать этот объект... поэтому мы не можем выбросить некоторые из них, когда место на исходе. - person Kevin Boss; 22.05.2013
comment
На самом деле вам вообще не нужно истекать срок действия объектов. Просто имейте достаточно памяти на каждом распределенном кэш-сервере и достаточное количество кэш-серверов, чтобы предоставить вам желаемое пространство для хранения. Например, NCache имеет топологию Partitioned Cache, которая позволяет вам увеличивать размер кэша настолько, насколько вы хотите, просто добавляя больше серверов кэша. Суть в том, что вы хотите использовать распределенный кеш с богатыми функциями, и именно здесь NCache выделяется среди всех остальных. Я снова призываю вас быстро просмотреть его здесь: alachisoft.com - person Andy H; 23.05.2013
comment
Да, у нас действительно есть несколько членов команды с опытом работы с NCache, так что это тоже вариант. AppFabric был просто еще одним решением. Вопрос был больше о производительности этого кэширующего решения. Тем не менее, спасибо :) - person Kevin Boss; 23.05.2013
comment
Виноват! :) Когда вы говорили о MemoryCache, я предположил, что вы говорите о кэше внутри процессов и что вы не уверены, что получите такую ​​​​же производительность от AppFabric. Поэтому, основываясь на этом, я представил NCache :), потому что у него есть функция кэширования клиента, которая помогает избежать обращений к основному кешу, сохраняя подмножество данных из основного кеша ближе всего к приложению, тем самым повышая производительность. Но в любом случае теперь я понимаю, что вы искали просто цифры производительности - person Andy H; 24.05.2013