[Хд] logo

Что такое highload

Прежде всего, highload — крайне относительное понятие. Оно никогда не измеряется количеством запросов или скоростью работы сайта, т.к. попросту нет такого понятия, как "средний сайт". Все сайты специфичны и одинаковое количество запросов может приводить к совершенно разным нагрузкам на разные ресурсы.

Что же такое high load (читается "хайлоад")? Правильным вопросом будет скорее — когда заканчивается "обычный" проект и начинается highload?

Когда наступает high load?

Наступает этот момент тогда, когда Ваша текущая инфраструктура начинает показывать первые признаки того, что она перестает справляться с нагрузкой. Если у Вас VPS на 128 Мб — для Вас это может быть 10 запросов в секунду. Для кого-то это может быть 10 тысяч запросов. Суть не в них, а в том, существует ли необходимость для масштабирования и оптимизации инфраструктуры.

Если Ваш сайт не справляется с нагрузкой — все, теперь Вы в клубе highload.

Симптомы

Чтобы понять, что проблема есть, ее нужно диагностировать. Именно поэтому, при любой нагрузке, Вам нужна хорошая система мониторинга. Она поможет определить тот самый момент, когда пора масштабироваться.

Хорошие системы мониторинга и отслеживания трендов работы серверов:

Что обычно происходит, когда приближается точка highload:

  • Медленная либо бесконечная загрузка страниц
  • Случайные ошибки
  • Оборванные соединения от Web-сервера
  • Частичная загрузка содержимого (например, нет части картинок)
  • Снижение активности аудитории

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

Что делать в первую очередь?

Прежде всего нужно определить причины проблем. Следует проверить следующее:

Web-сервер

Правильно настроенный Web-сервер позволит существенно разгрузить железо. Если Вы используете Nginx, убедитесь, что он правильно настроен. Если на Вашем сайте есть картинки и прочие файлы, которые никогда не меняются, убедитесь, что Nginx правильно настроен для отдачи файлов.

Если Вы не используете Nginx, советую переходить на него. Согласно статистике Netcraft nginx обслуживал или проксировал 18.16% самых нагруженных сайтов в мае 2014 года.

Оптимизация клиентской части позволит сэкономить значительное количество ресурсов и обеспечить высокую скорость работы ресурса для пользователей. Даже, если проблем на сервере нет, сайт может работать значительно быстрее.

MySQL

Наиболее часто проблемы встречаются именно в базах данных. Убедитесь, что MySQL настроен под Ваши нужды.

Включите лог медленных запросов в MySQL и используйте инструменты для его анализа.

PHP

К удивлению, проблемы с производительностью, связанные с PHP, бывают не так часто. Тем не менее, анализ работы приложения (профилирование) позволит определить узкие места. Для профилирования стоит использовать утилиту xhProf.

Стоит ли готовиться предварительно?

Если Вы работаете над сайтом, который постепенно растет, то рано или поздно Вы перейдете в режим работы highload. Стоит ли делать что-то заранее? Да.

Прежде всего убедитесь, что все простые вещи, которые можно было сделать, сделаны. На примере базовой оптимизации VPS можно за 10...15 минут получить существенный прирост в производительности.

С первых же дней работы включайте мониторинг. Тут работает правило — чем больше Вы знаете, тем лучше.

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

[Хд]

Подписывайтесь на отборные материалы по продвинутой разработке

Google Email

Esc, чтобы подписаться позже