2013-04-16 5 views
2

Наш сайт, разработанный в ASP.NET, ожидает, что 1000 одновременных пользователей и его производительность снижается, увеличивая количество списков в БД. Какое кэширование (например, NCache или Appfabric) будет лучшим, чтобы уменьшить нагрузку на БД и повысить производительность для более одновременных пользователей. Пожалуйста, дайте мне несколько предложений.Кэширование приложений ASP .NET

ответ

2

Если у вас несколько серверов, чем система кэширования Appfabric, это поможет. В построении системы кэширования asp.net также хорошо, если они будут использоваться для одного сервера. Одним из наиболее важных факторов будет размер оперативной памяти, который у вас будет. Если вы собираетесь добавлять все больше ОЗУ, ваш сайт будет быстрее и быстрее. Также можно использовать memcache Is there a port of memcache to .Net?. Даже если вы видите сайт как переполнение стека, у них на сервере базы данных имеется около 380 ГБ ОЗУ, что ускоряет его. Даже SQL-серверы предназначены для хранения данных в ОЗУ для быстрого доступа.

2

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

Ваш сайт становится медленным с 1000 одновременных пользователей? Хорошо, это довольно нормально: небольшие веб-сайты не являются архитектурными, как крупные веб-сайты. Но давайте посмотрим, почему (неупорядоченный список):

  • Просто, что медленно? страницу, весь веб-сайт?
  • Сеть: ваша сетевая инфраструктура оптимальна?
  • DB: Ваша база данных перегружена? Могут ли ваши Queres быть оптимизированы?
  • MVC: Вы используете Async? Сессии? Как насчет веб-Api?
  • Веб: Что относительно производительности сети? (CDN, скрипты, CSS, количество запросов, ...)

Для обнаружения как можно быстрее узких мест в вашей системе существует два пути: тестирование нагрузки и контроль производственной системы.

За этим стоит задача ScaleIn Vs ScaleOut. Я не говорю, что распределенный кеш - не самое подходящее решение для вас: я просто говорю, что простейший!

0

Я настоятельно рекомендую вам взглянуть на NCache для вашего приложения ASP.NET. NCache

очень многофункциональный распределенный кэш для приложений .NET и гораздо более мощного

чем App Fabric.

Вы можете использовать NCache для кэширования данных приложений, хранения состояния сеанса ASP.NET и совместного использования данных во время выполнения.

0

Об использовании действия GET: outputcache/ если вы используете на сохранения в БД

EF => Configuration.AutoDetectChangesEnabled = false; 

Большинство проблем в плохо оптимизированного кода.