Это очень широкий вопрос, затрудняющий ответ, но я постараюсь дать несколько общих предложений.
1 - Если вы не делаете что-то серьезно, тогда вам, вероятно, не придется беспокоиться о производительности или масштабировании, пока вы не достигнете значительного объема трафика (более 1 миллиона просмотров страниц в месяц).
2 - ваши самые большие проблемы с производительностью на начальном этапе, вероятно, связаны с загрузкой страниц из других стран. Попробуйте Gomez Instance Site Test , чтобы увидеть время загрузки страницы со всего мира, и используйте YSlow в качестве руководства по оптимизации.
3 - Когда вы начнете сталкиваться с проблемами производительности, это, скорее всего, будет связано с работой базы данных. Используйте SQL Server Profiler для проверки вашего трафика SQL в поисках долго выполняющихся запросов, чтобы попытаться оптимизировать, а также используйте dm_db_missing_index_details
для поиска индексов, которые вы должны добавить.
4 - Если ваши веб-серверы начинают становиться узким местом в производительности, используйте профилировщик (например, ANTS Profiler), чтобы искать способы оптимизации кода ваших веб-страниц.
5 - Если ваши веб-серверы хорошо оптимизированы и все еще работают слишком активно, ищите больше возможностей кэширования, но вам, вероятно, потребуется просто добавить больше веб-серверов.
6 - Если ваша база данных хорошо оптимизирована и все еще работает слишком горячо, тогда посмотрите на добавление распределенной системы кэширования. Этого, вероятно, не произойдет, пока вы не просмотрите более 10 миллионов страниц в месяц.
7 - Если ваша база данных начинает перегружаться даже из-за распределенного кэширования, тогда взгляните на архитектуру сегментирования. Этого, вероятно, не произойдет, пока вы не просмотрите более 100 миллионов страниц в месяц.