Как измерить веб-приложения для масштабируемости - PullRequest
2 голосов
/ 19 сентября 2011

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

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

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

Заранее спасибо ...

Ответы [ 3 ]

3 голосов
/ 19 сентября 2011

Сокращение сценариев и кэширование содержимого - это то, что вы должны сделать сразу .Это влияет на скорость загрузки страницы и, таким образом, на восприятие пользователя независимо от того, насколько загружен ваш сайт .Исследования показывают, что более быстрые сайты имеют лучшие показатели конверсии - Google it.Скорость страницы также считается хорошей для рейтинга в поисковых системах.

Вы можете измерить эффективность загрузки страницы с помощью таких инструментов, как Скорость страницы Google и Yahoo YSlow .Оба инструмента также предлагают методы для улучшения, поэтому пусть они будут вашими руководителями.

2 голосов
/ 19 сентября 2011

Я больше в кодировании, чем в админке сервера ... просто идея ... У меня был бы index1.php, который не отличался бы от index.php, за исключением того, что в начале он имел бы microtime () и другойв последней строке (или вокруг некоторого фрагмента кода, который вас подозревает) для подсчета времени выполнения.После последней строки (микротайм) у меня будет функция для сохранения этого времени выполнения вместе с датой в дБ.

Я буду запускать форму страницы index1.php 2 или 3 раза в день и хранить максимальное времяна этот день.В конце недели вы можете сгенерировать график или увидеть значения напрямую, как они меняются в зависимости от времени, чтобы вы могли решить, что делать.

mysql оптимизация (обычно есть много вещей, которые нужноОптимизированный, типы данных, индексы, SQL-запросы и т. д.), хороший дизайн, тяжелые циклы, асинхронная загрузка (XmlHttp - может сильно помочь) - все это нужно учитывать.

1 голос
/ 19 сентября 2011
  1. Начните с определения уровня обслуживания, который вы хотите предоставить своим пользователям. Например, любая страница никогда не должна загружаться более 1 секунды с точки зрения пользователя. Сайт должен работать на 99,9% и т. Д.

  2. На основе уровня обслуживания определите приемлемую производительность (во время загрузки страницы и т. Д.).

  3. Оценить существующую производительность. т.е. измерять текущую эффективность по различным критериям на текущем уровне использования.

  4. Определите страницы, которые вы хотите оптимизировать. Если большая часть сайта нуждается в оптимизации, вы должны посмотреть на общие решения (например: минимизация js / css, кэширование и т. Д.). Если конкретные страницы нуждаются в оптимизации, посмотрите на отдельные запросы и т. Д.

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

Это общие шаги, которые вы можете предпринять. Что касается конкретных шагов, рассмотрим:

  1. Разделение / разбиение всего (базы данных, несколько веб-серверов и т. Д.).

  2. Асинхронный дизайн (т. Е. Любой процесс, который вы занимаете, может занять много ресурсов, вы должны преобразовать в асинхронный процесс. Допустим, вы разрешаете пользователям загружать документ. Приложение затем берет документ и выполняет некоторую обработку по Документ. Вместо того, чтобы выполнять всю обработку на одной странице php, добавьте запрос в очередь, а затем немедленно сообщите пользователю, что его запрос поставлен в очередь. Отдельный фоновый процесс выполняет обработку, просматривая очередь. После завершения , вы можете сообщить пользователю, что его запрос был обработан.

Для получения дополнительных инструкций вы можете обратиться к книге под названием «Искусство масштабируемости» http://amzn.to/oSQGHb

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...