Найти в Дзене

Как ускорить загрузку сайта со стороны бэкенда

С какой скоростью будет загружаться ваш сайт напрямую зависит от скорости отдачи страниц с бэкэндом со всеми вспомогательными частями и скорости внешней части в браузере пользователя. Рассматривая сайты написанные на РНР, скорость создания страницы будет достигать 100 мс, но также возможна и более медленная загрузка до 400 мс с дальнейшей оптимизацией кешированием cache-buster’а, увеличивающий скорость до 30 с. Из одного домена вы сможете загрузить 6 файлов, а значит их необходимо не просто уменьшать их размер, но и количество. Один из ярких примеров являются услуги CDN-провайдеров, которые располагают файлы на разных серверах и увеличивают количество параллельно загружаемых файлов. Для того, чтобы понять работу кода и научится быстро вносить необходимые изменения программист должен использовать нагрузочное тестирование во время всей разработки. Расширить ресурсы сервера Медленная работа сервера исключает возможность тратить время на клиентскую оптимизацию. Если не больше проекты при у
Оглавление

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

Рассматривая сайты написанные на РНР, скорость создания страницы будет достигать 100 мс, но также возможна и более медленная загрузка до 400 мс с дальнейшей оптимизацией кешированием cache-buster’а, увеличивающий скорость до 30 с. Из одного домена вы сможете загрузить 6 файлов, а значит их необходимо не просто уменьшать их размер, но и количество. Один из ярких примеров являются услуги CDN-провайдеров, которые располагают файлы на разных серверах и увеличивают количество параллельно загружаемых файлов. Для того, чтобы понять работу кода и научится быстро вносить необходимые изменения программист должен использовать нагрузочное тестирование во время всей разработки.

Расширить ресурсы сервера

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

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

TIG (Telegraf, Influx, Grafana)

Оценк сайты мы проведем на стеке TIG, который имеет основные компоненты для мгновенного развертывания мониторинга. После всех настроек мы увидим всю статистику пользования ресурсами сервера и скорость работы всех элементов системы.

Яндекс.Танк

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

-2
-3

Архитектура

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

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

База данных

Баз данных - это всегда самая медленная часть сайта. Из - за этого мы рекомендуем уменьшать количество запросов или же делить их на части частично кешируя результат. Главной базой данных является PostgreSQL, основное преимущество которой подход Not-Only-SQL.

Прейде к сравнению выборок JSONB, индекса GIN и базового алгоритма.

JSONB —это более сложный подвид JSON, который отлично перекрывает индексами GIN.

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

Покрывающие индексы

Используя данные хранящиеся в индексе скорость выборки и фильтрации растет, соответственно и сами индексы увеличиваются. Поэтому мы не рекомендуем часто использовать это.

Денормализация

С целью увеличения операци чтениях базы помощью добавления избыточных данных мы приводим структуру базы данных в положение не соответствующее критериям нормализации. Используя jsonb ы с легкостью денормализирум данные и получаем х вс сразу. Это упрощает ваш код и увеличивает выборку из БД.

-4

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

Ставьте лайки, дизлайки, комментируйте и подписывайтесь😎

Не забудь и про другие наши статьи: Mozilla Firefox 89. Новый интерфейс и кое-что ещё