56
Все о скорости сайтов Юрий Устинов Русоникс Москва, 20 июня 2013

Все о скорости сайтов. Мастер-класс на партнерской конференции 1С-Битрикс

  • Upload
    rusonyx

  • View
    502

  • Download
    0

Embed Size (px)

DESCRIPTION

Сокращенная версия презентации. Файл доступен для скачивания и содержит текстовые комментарии к слайдам. 1,5-часовой мастер-класс, посвященный скорости сайтов, прошел в рамках летней партнерской конференции 1С-Битрикс 20 июня 2013 г. В мастер-классе приняли участие представители 40 веб-студий. В материале раскрыты технические механизмы загрузки и отображения страниц сайта. Приведены правильные и неправильные примеры. Разобраны самые эффективные способы ускорения сайтов и инструменты для выявления узких мест.

Citation preview

Page 1: Все о скорости сайтов. Мастер-класс на партнерской конференции 1С-Битрикс

Все о скорости сайтов

Юрий Устинов Русоникс

Москва, 20 июня 2013

Page 2: Все о скорости сайтов. Мастер-класс на партнерской конференции 1С-Битрикс

Загрузка сайта

DNS (узнаем, где сайт)

Page 3: Все о скорости сайтов. Мастер-класс на партнерской конференции 1С-Битрикс

Загрузка сайта

DNS (узнаем, где сайт)

Сеть (стучимся туда, где сайт)

Page 4: Все о скорости сайтов. Мастер-класс на партнерской конференции 1С-Битрикс

Загрузка сайта

DNS (узнаем, где сайт)

Сеть (стучимся туда, где сайт)

Ждем ответа сервера (он создает html)

Page 5: Все о скорости сайтов. Мастер-класс на партнерской конференции 1С-Битрикс

Загрузка сайта

DNS (узнаем, где сайт)

Сеть (стучимся туда, где сайт)

Ждем ответа сервера (он создает html)

Загружаем содержимое (html)

Page 6: Все о скорости сайтов. Мастер-класс на партнерской конференции 1С-Битрикс
Page 7: Все о скорости сайтов. Мастер-класс на партнерской конференции 1С-Битрикс

НЕЕЕЕЕЕЕЕ-Е-Е-Е-Е-Е-Е-ЕЕЕЕЕТ!!!!!

Page 8: Все о скорости сайтов. Мастер-класс на партнерской конференции 1С-Битрикс

6 потоков

Page 9: Все о скорости сайтов. Мастер-класс на партнерской конференции 1С-Битрикс

6 потоков

Page 10: Все о скорости сайтов. Мастер-класс на партнерской конференции 1С-Битрикс

Время на сетевое взаимодействие

• Одноразовая задержка:DNS: расстояние до нейм-серверов и отклик

• Постоянная задержка:Расстояние до сервера с сайтом и отклик

Page 11: Все о скорости сайтов. Мастер-класс на партнерской конференции 1С-Битрикс

Время на генерацию страницы

Page 12: Все о скорости сайтов. Мастер-класс на партнерской конференции 1С-Битрикс

Время на генерацию страницы

Page 13: Все о скорости сайтов. Мастер-класс на партнерской конференции 1С-Битрикс

Время на генерацию страницы

Page 14: Все о скорости сайтов. Мастер-класс на партнерской конференции 1С-Битрикс

Неправильные настройки хостинга и битрикса

Page 15: Все о скорости сайтов. Мастер-класс на партнерской конференции 1С-Битрикс

Неправильный код

Тема отладки отлично раскрыта:http://failoverconf.ru/Доклад Александра Сербула «Мониторинг веб-проектов: штаб оперативного реагирования и аналитический центр»

ТАМ ЕСТЬ ВИДЕО доклада и .ppt

Page 16: Все о скорости сайтов. Мастер-класс на партнерской конференции 1С-Битрикс

Ускоряем выдачу заголовков

• Сбрасывайте буфер вывода PHP (ЧО-ЧО?)

• Просто используйте PHP Flush (а, понятно)

ПРИМЕР БЫЛ, но я его потерял

Page 17: Все о скорости сайтов. Мастер-класс на партнерской конференции 1С-Битрикс

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

Что-то нельзя кешировать? – в параллельную загрузку.

Много элементов? – в ленивую загрузку.

Page 18: Все о скорости сайтов. Мастер-класс на партнерской конференции 1С-Битрикс

Хороший пример параллельной загрузки: выдача гугла

123 4

Page 19: Все о скорости сайтов. Мастер-класс на партнерской конференции 1С-Битрикс

Хороший пример ленивой загрузки: выдача ФБ, ВК, ТВТ

Все знают как это бывает, правда?

Page 20: Все о скорости сайтов. Мастер-класс на партнерской конференции 1С-Битрикс

Внешние коннекты

Вам не нужно этоНе вам нужно этоВам нужно не этоНужно вам не этоНе вам это нужноВам не это нужноНужно не вам это

КЭШИРУЙТЕ ИЛИ В ПАРАЛЛЕЛЬ

Вам это не нужноНе нужно это вамНужно это не вамЭто не вам нужноЭто вам не нужноНе это нужно вамЭто нужно не вамНужно не это вам

Page 21: Все о скорости сайтов. Мастер-класс на партнерской конференции 1С-Битрикс

Плохой пример – один блогер

Как-то нехорошо было бы показать скриншот прямо так.

Вы его не видите, но он есть.

Page 22: Все о скорости сайтов. Мастер-класс на партнерской конференции 1С-Битрикс

Загрузка контента

Неправильно:для каждого файла новое соединение

Page 23: Все о скорости сайтов. Мастер-класс на партнерской конференции 1С-Битрикс

Загрузка контента

Неправильно:для каждого файла новое соединение

Правильно: на одно соединение много файлов

Page 24: Все о скорости сайтов. Мастер-класс на партнерской конференции 1С-Битрикс

Увеличение числа параллельных потоков

Page 25: Все о скорости сайтов. Мастер-класс на партнерской конференции 1С-Битрикс

Увеличение числа параллельных потоков

Page 26: Все о скорости сайтов. Мастер-класс на партнерской конференции 1С-Битрикс

Сжатие данных

Page 27: Все о скорости сайтов. Мастер-класс на партнерской конференции 1С-Битрикс

Сжатие данных

Page 28: Все о скорости сайтов. Мастер-класс на партнерской конференции 1С-Битрикс

Снижение количества файлов

Правило 6 потоков. Идеальная схема: до 3 js + до 3 css примерно равного размера

Page 29: Все о скорости сайтов. Мастер-класс на партнерской конференции 1С-Битрикс

СпрайтыОдин большой спрайт – тоже плохо. Помним правило 6 потоков!

Page 30: Все о скорости сайтов. Мастер-класс на партнерской конференции 1С-Битрикс

Уменьшение изображений

• Не уменьшать картинки тегами в html• Не генерить превью «на лету»• А мы генерим с кешированием!• Особенно не генерить с кешированием• Контролировать объем рекламных

слайдеров

Page 31: Все о скорости сайтов. Мастер-класс на партнерской конференции 1С-Битрикс

Правильное проектирование сайта

Подробно про масштабируемую структуру веб-сервисов в моем докладе на http://failoverconf.ru

Параллельная обработка блоков, вывод каркаса без ожидания результата.

Page 32: Все о скорости сайтов. Мастер-класс на партнерской конференции 1С-Битрикс

Как измерять скорость работы сайта

• Наконец-то

Page 33: Все о скорости сайтов. Мастер-класс на партнерской конференции 1С-Битрикс

WebPageTest.org: для профи

Page 34: Все о скорости сайтов. Мастер-класс на партнерской конференции 1С-Битрикс

WebPageTest.org: для профи

Page 35: Все о скорости сайтов. Мастер-класс на партнерской конференции 1С-Битрикс

WebPageTest.org: для профи

Page 36: Все о скорости сайтов. Мастер-класс на партнерской конференции 1С-Битрикс
Page 37: Все о скорости сайтов. Мастер-класс на партнерской конференции 1С-Битрикс

SiteSpeed.ru: подробный PDF-отчет

Page 38: Все о скорости сайтов. Мастер-класс на партнерской конференции 1С-Битрикс

SiteSpeed.ru: подробный PDF-отчет

Page 39: Все о скорости сайтов. Мастер-класс на партнерской конференции 1С-Битрикс

SiteSpeed.ru: подробный PDF-отчет

Page 40: Все о скорости сайтов. Мастер-класс на партнерской конференции 1С-Битрикс
Page 41: Все о скорости сайтов. Мастер-класс на партнерской конференции 1С-Битрикс

13 сек 6 сек

Время загрузки главной страницы по данным sitespeed.ru, окт 2012

Page 42: Все о скорости сайтов. Мастер-класс на партнерской конференции 1С-Битрикс

Относительное количество поисковых запросов по данным Google Trends, июнь 2013

13 сек 6 сек

Наверное много других причин, но

Время загрузки главной страницы по данным sitespeed.ru, окт 2012

Page 43: Все о скорости сайтов. Мастер-класс на партнерской конференции 1С-Битрикс

На самом деле все уже изменилось

Свежие данные:• Евросеть: 15,6 сек (164 файла)• Связной: 15,8 сек (242 файла!)

Посмотрим, как это скажется на успешности и популярности связного в массах

Page 44: Все о скорости сайтов. Мастер-класс на партнерской конференции 1С-Битрикс

Пример анализа

Загрузка страницы: 10,6 сНачало отображения: 4,0 с

Объем данных: 1,8 МбЗапросы к серверу: 140

Page 45: Все о скорости сайтов. Мастер-класс на партнерской конференции 1С-Битрикс

Пример анализа

Данные: sitespeed.ru, webpagetest.org

Page 46: Все о скорости сайтов. Мастер-класс на партнерской конференции 1С-Битрикс

Пример анализа

Данные: sitespeed.ru, webpagetest.org

Page 47: Все о скорости сайтов. Мастер-класс на партнерской конференции 1С-Битрикс

Пример анализа

Данные: sitespeed.ru, webpagetest.org

Page 48: Все о скорости сайтов. Мастер-класс на партнерской конференции 1С-Битрикс

13 CSS21 js, в т.ч. 6 с jquery

Оптимизация скриптов и стилей:

0,7 сек.

Данные: sitespeed.ru, webpagetest.org

Page 49: Все о скорости сайтов. Мастер-класс на партнерской конференции 1С-Битрикс

22 стандартных PNG-изображения

Объединение в

спрайт: 0,4 сек.

Данные: sitespeed.ru, webpagetest.org

Page 50: Все о скорости сайтов. Мастер-класс на партнерской конференции 1С-Битрикс

3 нестандартных шрифта

Отказаться: 0,6 сек.илиВкл.кэш: 0,2 сек.

Данные: sitespeed.ru, webpagetest.org

Page 51: Все о скорости сайтов. Мастер-класс на партнерской конференции 1С-Битрикс

Отложенная загрузка слайдов

5 из 6: 2,2 сек.

Данные: sitespeed.ru, webpagetest.org

Page 52: Все о скорости сайтов. Мастер-класс на партнерской конференции 1С-Битрикс

Обзор открытых соединений

От такого использования поддоменанет никакого выигрыша

Данные: sitespeed.ru, webpagetest.org

Page 53: Все о скорости сайтов. Мастер-класс на партнерской конференции 1С-Битрикс

Обзор открытых соединений

ОК

Данные: sitespeed.ru, webpagetest.org

Page 54: Все о скорости сайтов. Мастер-класс на партнерской конференции 1С-Битрикс

Данные: sitespeed.ru, webpagetest.org

Обзор открытых соединений

ОК

Выигрыш от правильного использования поддоменов

2 - 4 сек.

Page 55: Все о скорости сайтов. Мастер-класс на партнерской конференции 1С-Битрикс

Пример анализа

Время загрузки страницы: 10,6 → 6,0 сек.

Начало отображения: 4,0 → 2,9 сек.

Запросы к серверу: 140 → 96

Page 56: Все о скорости сайтов. Мастер-класс на партнерской конференции 1С-Битрикс

Юрий Устинов РУСОНИКСFacebook: yuri.ustinov rusonyxTwitter: @sukahitriy @rusonyxEmail: [email protected] [email protected]

Спасибо, #bitrixconf :)