Лучший способ для веб-сайта .NET справиться с высоким трафиком

Один из веб-сайтов, которыми я управляю, будет связан с веб-сайтом с очень высоким трафиком. Поэтому в течение следующих нескольких дней я планирую увеличить масштаб своей установки, чтобы убедиться, что она может справиться с такой высокой нагрузкой трафика. Моя текущая установка — это 32-разрядная машина с 4 ГБ ОЗУ, Win Server 2K8, IIS7, SQL Server 2K5 и выделенный веб-сервер в той же стране, откуда ожидается трафик. Он оснащен выделенной линией связи со скоростью 2 Мбит/с. Этот сервер предназначен для моего веб-сайта, и база данных тоже находится на том же веб-сайте (на данный момент). Веб-сайт (в основном приложение ERP) тесно взаимодействует с базой данных, а также имеет значительную графику.

Что может быть лучшим способом обработки трафика величиной около 10K-15K в таких случаях?


person Maggi    schedule 17.02.2011    source источник
comment
В некотором смысле этот вопрос может быть немного более подходящим для Server Fault с точки зрения того, как убедиться, что ваш сервер может справиться с нагрузкой. Но вы также должны оставить его здесь, так как есть некоторые вещи, которые вы можете сделать, чтобы убедиться, что ваш сайт не использует слишком много ресурсов.   -  person Maxim Zaslavsky    schedule 17.02.2011
comment
лучший блог, который я нашел очень полезным для моих производственных веб-сайтов. сослаться на это   -  person Praneeth    schedule 17.02.2011


Ответы (2)


Как я сказал в своем комментарии выше, обеспечение того, чтобы ваш сервер мог обрабатывать высокий трафик, является проблемой, связанной как с сервером, так и с приложением.

Вот несколько советов, которые могут помочь вам сделать ваш сайт более эффективным:

  • Используйте кэширование данных и кэширование вывода. Вам следует кэшировать результаты запросов к базе данных в HttpRuntime.Cache, особенно интенсивных, а также следует кэшировать вывод отдельных страниц с помощью атрибута OutputCache.
  • Сокращение тяжелых ресурсов. Убедитесь, что вы контролируете ресурсы, такие как подключения к базе данных/контексты, потоки и т. д. Кроме того, для вашей базы данных может помочь повышение эффективности ваших запросов.
  • Протестируйте. Как говорил Ремус, тестирование невероятно важно. Отправьте кучу запросов и посмотрите, что получится!
  • Проведите аудит своего сайта. Узнайте, какие методы потребляют больше всего ресурсов и занимают больше всего времени, и попытайтесь их улучшить. Кроме того, инструмент Inspector в Google Chrome теперь имеет функцию аудита, которая, вероятно, даст вам несколько полезных советов, чтобы сделать ваш сайт более эффективным.
  • Включить сжатие GZip. Это поможет вам снизить нагрузку на сеть без существенного влияния на эффективность.

Удачи!

person Maxim Zaslavsky    schedule 17.02.2011

Попробуй это.

Выпустите 10-15 тысяч запросов (в день? в минуту? в секунду?) на ваш сервер, посмотрите, как он себя поведет. Измерьте, а затем примите соответствующие меры. Эта статья Измерение производительности приложений .NET немного устарела, но вы все равно получите приличный пробег из информации там (очевидно, не все датировано, по-прежнему рекомендуется некоторыми даже в 2010 году).

person Remus Rusanu    schedule 17.02.2011
comment
(Пытался быть кратким, но извините, что пропустил это.) Предполагая, что это будет дневной трафик. (так что предположительно это всего около 8 часов трафика) - person Maggi; 17.02.2011
comment
15к в день это ничто. 10 запросов в секунду. Даже машина x86 с общими ресурсами IIS с SQL Server должна справиться с этим. - person Remus Rusanu; 17.02.2011
comment
разве 15к в день не = 10 в минуту, а не в секунду? :) - person Maxim Zaslavsky; 17.02.2011
comment
@Mxim: да, это 10 в минуту - person Remus Rusanu; 17.02.2011