3  /  22

Время отклика

Просмотров: 12994
Дата последнего изменения: 23.09.2021
Сложность урока:
2 уровень - несложные понятия и действия, но не расслабляйтесь.
1
2
3
4
5

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

Оптимальным временем считается 0.05-0.3 секунды. Отклик дольше 1 секунды привлекает внимание посетителя и воспринимается как «торможение».
веб-система.

  Как «откликаются» сайты

Для построения сложных аналитических выборок или сортировок с агрегацией веб-страница обращается к Базе Данных. Запрос может занимать от одной до десятков секунд.

Обычно время обращения при использовании правильных алгоритмов растет логарифмически с увеличением объема данных. Если рост происходит линейно или даже квадратично (иногда экспоненциально), то необходимо разобраться в причинах и устранить такое поведение как «ошибку».

Что делать с задержками в построении веб-страниц в несколько секунд, особенно на веб-системах с миллионами объектов в базе данных? Существует несколько подходов. Каждый из них подбирается под специфику конкретного веб-проекта.

  Динамическое кэширование

При этом подходе результаты построения веб-страницы кэшируются. Для построения идентичной веб-страницы отдается предварительно сохраненная версия данных Использование технологии Автокеширования позволяет быстро подготовить сайт и компоненты проекта к работе в условиях стрессовых нагрузок или адаптировать сайт к работе.
Подробнее...
.

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

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

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

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

  Предварительное кэширование

Очень важно измерять время и долю откликов, превышающую разумное значение.

Замерьте отклик, например, после обновления каталога товаров. Если результаты использования встроенных в продукт инструментов контроля производительности или изучения логов показывают, что большая доля посетителей участвует в построении кэша веб-страниц (получают отклик в несколько секунд), – выполните предварительное кэширование основных комплексных запросов для фильтрации каталога и самых популярных товаров.

  Многоуровневое кэширование

Иногда во время нескольких разных и «тяжелых» честных запросов к большим объемам данных запрашивается одна и те же информация. Часто используемые данные можно закэшировать – это ускорит типовые запросы. Для решения этой задачи подойдет технология управляемого кэширования Технология управляемого кеширования или тегированный кеш (Сache Dependencies) автоматически обновляет кеш компонентов при изменении данных.
Подробнее...
. Она встроена в продукт.

  Композитный кэш

В платформу «1С-Битрикс» встроена запатентованная технология композитного кэширования Основная цель технологии Композитный сайт - ускорить выдачу страницы пользователю за счёт выделения, последующей обработки и довыдачи зон с динамичным контентом дополнительным ajax-запросом.

Подробнее...
. Без сложных настроек «автокомпозит» значительно улучшает время отклика для большей части веб-страниц и посетителей веб-системы. И повышает ранжирование страниц веб-проекта в популярных поисковиках.

  Алгоритм уменьшения времени отклика

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

Если же данных много, то необходимо:

  • Включить «композитный кэш», «автокэширование».
  • Проанализировать гистограмму времени отклика для клиентов в пространстве веб-страниц.
  • Провести анализ встроенными в продукт инструментами контроля качества производительности.
  • Применить управляемое/многоуровневое/предварительное кэширование для сценариев с логарифмической зависимостью времени отклика от объема данных.
  • Разобраться в причинах и оперативно устранить как ошибку возможные сценарии с линейной, квадратичной и экспоненциальной зависимостью времени отклика от объема данных.
  • Провести нагрузочное тестирование на целевом объеме данных, приближенном к ожидаемым.

1
Курсы разработаны в компании «1С-Битрикс»