Прежде всего, highload — крайне относительное понятие. Оно никогда не измеряется количеством запросов или скоростью работы сайта, т.к. попросту нет такого понятия, как “средний сайт”. Все сайты специфичны и одинаковое количество запросов может приводить к совершенно разным нагрузкам на разные ресурсы.
Что же такое high load (читается “хайлоад”)? Правильным вопросом будет скорее — когда заканчивается “обычный” проект и начинается highload?
Наступает этот момент тогда, когда Ваша текущая инфраструктура начинает показывать первые признаки того, что она перестает справляться с нагрузкой. Если у Вас VPS на 128 Мб — для Вас это может быть 10 запросов в секунду. Для кого-то это может быть 10 тысяч запросов. Суть не в них, а в том, существует ли необходимость для масштабирования и оптимизации инфраструктуры.
Если Ваш сайт не справляется с нагрузкой — все, теперь Вы в клубе highload.
Чтобы понять, что проблема есть, ее нужно диагностировать. Именно поэтому, при любой нагрузке, Вам нужна хорошая система мониторинга. Она поможет определить тот самый момент, когда пора масштабироваться.
Хорошие системы мониторинга и отслеживания трендов работы серверов:
Что обычно происходит, когда приближается точка highload:
Кроме этого, обязательно пользуйтесь системой аналитики для того, чтобы понимать влияние состояния Вашего железа на пользователей:
Прежде всего нужно определить причины проблем. Следует проверить следующее:
Правильно настроенный Web-сервер позволит существенно разгрузить железо.
Если Вы используете Nginx, убедитесь, что он [p28 правильно настроен]. Если на Вашем сайте есть картинки и прочие файлы, которые никогда не меняются, убедитесь, что Nginx правильно настроен для отдачи файлов.
Если Вы не используете Nginx, советую переходить на него. Согласно статистике Netcraft nginx обслуживал или проксировал 18.16% самых нагруженных сайтов в мае 2014 года.
[p42 Оптимизация клиентской части] позволит сэкономить значительное количество ресурсов и обеспечить высокую скорость работы ресурса для пользователей. Даже, если проблем на сервере нет, сайт может работать значительно быстрее.
Наиболее часто проблемы встречаются именно в базах данных. Убедитесь, что [p27 MySQL настроен] под Ваши нужды.
Включите лог медленных запросов в MySQL и используйте инструменты для [p60 его анализа].
К удивлению, проблемы с производительностью, связанные с PHP, бывают не так часто. Тем не менее, анализ работы приложения (профилирование) позволит определить узкие места. Для профилирования стоит использовать утилиту [p65 xhProf].
Если Вы работаете над сайтом, который постепенно растет, то рано или поздно Вы перейдете в режим работы highload. Стоит ли делать что-то заранее?
Да.
Прежде всего убедитесь, что все простые вещи, которые можно было сделать, сделаны. На примере базовой оптимизации VPS можно за 10…15 минут получить существенный прирост в производительности.
С первых же дней работы включайте мониторинг. Тут работает правило — чем больше Вы знаете, тем лучше.
Но, ни в коем случае не следует заниматься предварительной оптимизацией. Иногда Вы можете угадать. Но чаще всего Вы рискуете просто потерять время на оптимизацию того, что скорее всего будет существенно изменяться. Лучше сфокусироваться на гибкости системы, что позволит быстро вносить требуемые изменения. Знайте [p7 ошибки, которых следует избегать], и не делайте их своими.
Этот текст был написан несколько лет назад. С тех пор упомянутые здесь инструменты и софт могли получить обновления. Пожалуйста, проверяйте их актуальность.
Прокси (proxy), или прокси-сервер — это программа-посредник, которая обеспечивает соединение между пользователем и интернет-ресурсом. Принцип…
Согласитесь, было бы неплохо соединить в одно сайт и приложение для смартфона. Если вы еще…
Повсеместное распространение смартфонов привело к огромному спросу на мобильные игры и приложения. Миллиарды пользователей гаджетов…
В перечне популярных чат-ботов с искусственным интеллектом Google Bard (Gemini) еще не пользуется такой популярностью…
Скрипт (англ. — сценарий), — это небольшая программа, как правило, для веб-интерфейса, выполняющая определенную задачу.…
Дедлайн (от англ. deadline — «крайний срок») — это конечная дата стачи проекта или задачи…