Устойчивость сайтов и веб‑приложений к нагрузкам

Для эффективного ведения бизнеса сайт должен выдерживать нагрузку и работать без перебоев. Однако, причин для сбоев из‑за нагрузки немало: это низкое качество хостинг‑провайдеров и даже простой резкий рост посещаемости, к которому проект не был готов, а также DoS‑атаки.

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

Повысить устойчивость сайта к нагрузкам можно несколькими способами. Самое простое — это повышение быстродействия системы (высокая скорость обработки запросов позволяет за единицу времени обслужить большее количество посетителей). Когда этих мер недостаточно, то производится масштабирование системы (увеличение кол‑ва серверов). Это может быть как относительно простое вертикальное масштабирование (разнесение компонентов приложения по разным серверам), так и более сложное горизонтальное (обеспечение согласованной работы нескольких экземпляров приложения на кластере серверов или в облаке). Вертикально можно масштабировать любые приложения, но у этой схемы есть лимит: более чем в несколько раз повысить производительность не получится, хотя для подавляющего большинства проектов этого вполне достаточно. Предела не имеет горизонтальное масштабирование, но это способ подходит только для тех сайтов, которые были при разработке адаптированы под такую схему работы.

Отдельно стоит сказать про DoS‑атаки (атаки типа «отказ в обслуживании»). Производятся они путём создания огромного числа обращений к сайту, в результате чего сайт либо «тормозит», либо вообще прекращает справляться с обработкой запросов. Провайдеры виртуальных хостингов с атакуемыми сайтами поступают очень просто — их отключают до момента, пока атака не прекратится. На выделенных серверах от слабых и даже средних по силе атак можно без проблем защититься своими силами. Действительно сильные атаки стоят очень немалых денег для их заказчика, но и защита от них требует обращения в специализированные компании, что тоже стоит денег.

высокие нагрузкибыстродействие
Статья опубликована в 2014 году

Тематические статьи

Быстродействие сайтов и веб‑приложений

Под быстродействием веб‑приложений понимается метрика, отражающая средний временной интервал от запроса пользователя до готовности страницы к взаимодействию в браузере.

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

быстродействие
веб-разработка
серверы
Статья опубликована в 2019 году

Высокие нагрузки — что выбрать: кластерное или облачное решение?

Если к сайту или веб‑приложению предъявляются высокие требования к быстродействию и устойчивости к высоким нагрузкам, то встаёт вопрос о выборе между кластерным и облачным решением. Оба варианта способны обеспечить отличное масштабирование, поэтому выбор чаще всего основан на экономических критериях.

высокие нагрузки
Статья опубликована в 2014 году

Ускоряем работу сайта с помощью серверного кеширования

Если простым языком, то серверное кеширование — это ряд технологий, которые позволяют «запоминать» один раз полученные или созданные данные, а затем многократно использовать их повторно, что способствует увеличению скорости отклика и снижает нагрузку на серверное оборудование.

быстродействие
бэкенд
веб-разработка
Статья опубликована в 2014 году

Увеличиваем скорость работы сайта при помощи оптимизации JavaScript

Сайт может работать быстрее, если выполнены следующие рекомендации по оптимизации JS‑кода. Если же этого не сделать, то сайт будет недостаточно быстро отображаться на стороне клиента.

быстродействие
фронтенд
JavaScript
веб-разработка
Статья опубликована в 2014 году

Ускоряем работу сайта: оптимизация HTML

Сайт может загружаться и отображаться быстрее, если выполнить следующие рекомендации по оптимизации HTML‑разметки, а без этого скорость загрузки и отрисовки будет ниже.

HTML
быстродействие
фронтенд
веб-разработка
Статья опубликована в 2014 году

Ускоряем работу сайта за счёт оптимизации CSS

Время загрузки и отрисовки сайта в браузере можно заметно снизить, если воспользоваться следующими советами.

быстродействие
фронтенд
CSS
веб-разработка
Статья опубликована в 2014 году

Ускоряем работу сайта, используя быстрый и надёжный веб‑сервер nginx

nginx — это простой, быстрый и надёжный сервер. Применение nginx очень эффективно для отдачи статического контента и в качестве прокси‑сервера перед динамическими сайтами.

быстродействие
системное администрирование
веб-серверы
серверное ПО
Статья опубликована в 2014 году

Ускоряем работу сайта: используем Redis для кеширования и хранения данных

Redis — сетевое журналируемое хранилище данных типа «ключ — значение», которое обрабатывает данные в оперативной памяти и обладает механизмами снимков и журналирования для обеспечения постоянного хранения. Хранилище поддерживает работу с пятью типами данных: со строками, списками, хешами, обычными и сортируемыми множествами.

быстродействие
бэкенд
веб-разработка
хранение данных
СУБД
серверное ПО
Статья опубликована в 2014 году

Быстрый поиск на сайте, используя ElasticSearch или Sphinx

Sphinx и ElasticSearch — это поисковые «движки», которые обеспечивают более быстрый поиск и фильтрацию по сравнению с реляционными базами данных, а также обеспечивают возможность использования многих полезных функций поиска, например, учитывают морфологию языка, осуществляют фасеточный поиск, работают со стоп‑словами, обеспечивают выборочную индексацию и позволяют производить настройку формулы определения релевантности документов.

быстродействие
хранение данных
поисковые движки
ElasticSearch
серверное ПО
NoSQL
СУБД
Статья опубликована в 2014 году