Насколько одновременны запросы в действительности? Будут ли они все вводить адрес в одно и то же время?
Тем не менее, профилируйте свое приложение локально, это позволит вам оценить использование ЦП, сети и памяти в Azure. Затем вместо того, чтобы смотреть на то, сколько экземпляров вам нужно, посмотрите, как вы можете уменьшить требования! Примените эти советы и снова создайте профиль локально.
Большинство советов по производительности имеют компромисс между использованием процессора, памяти или полосы пропускания, идея состоит в том, чтобы обеспечить их одинаковое масштабирование. Если вашему приложению не хватает памяти, но у вас много ресурсов ЦП и сети, не делайте этого.
Для одностраничного опроса убедитесь, что ваши html, css и js минимизированы, убедитесь, что они кэшируются.
Объедините их, если это возможно, и, чтобы получить действительно масштабируемое, отправьте статические файлы (css, js и изображения) в CDN. Все это уменьшает количество запросов, с которыми приходится иметь дело веб-серверу, и, следовательно, уменьшает количество необходимых веб-ролей = меньше сети.
Как ashx возвращает ответ? то есть отправляет ли он html, xml или json? лично я бы заставил его возвращать JSON, так как для этого потребуется меньшая пропускная способность сети и, скорее всего, меньшая обработка на стороне сервера = меньше памяти и сети.
Используйте асинхронный API для доступа к лазурному хранилищу (при этом используются порты завершения ввода-вывода, чтобы освободить поток iis для обработки дополнительных запросов, пока лазурное хранилище не вернется = включение масштабирования процессора)
tijmenvdk уже упоминал об использовании очередей для записи. Меняется ли список вопросов? если нет, закэшируйте их, чтобы приложение считывало данные из табличного хранилища только один раз при запуске и один раз для каждого клиента для окончательной обработки = экономит сеть и ЦП за счет памяти.
Все эти советы в равной степени применимы к обычному веб-приложению на одном сервере или в среде веб-фермы.
Я пытаюсь подчеркнуть, что то, что вы не можете измерить, вы не можете улучшить, а измерение, улучшение и стоимость идут рука об руку. Динамическое масштабирование снизит затраты, но, по сути, если ваше приложение не было измерено и не оптимизировано использование ресурсов, спрашивать, сколько экземпляров вам нужно, бессмысленно.
person
stevenrcfox
schedule
26.05.2011