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

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

Upload: melodie-clark

Post on 01-Jan-2016

48 views

Category:

Documents


0 download

DESCRIPTION

Все о скорости сайтов. Юрий Устинов Русоникс. Москва, 20 июня 2013. Загрузка сайта. DNS (узнаем, где сайт). Загрузка сайта. DNS (узнаем, где сайт). Сеть (стучимся туда, где сайт). Загрузка сайта. DNS (узнаем, где сайт). Сеть (стучимся туда, где сайт). - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Все о скорости сайтов

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

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

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

Page 2: Все о скорости сайтов

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

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

Page 3: Все о скорости сайтов

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

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

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

Page 4: Все о скорости сайтов

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

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

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

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

Page 5: Все о скорости сайтов

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

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

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

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

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

Page 6: Все о скорости сайтов
Page 7: Все о скорости сайтов

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

Page 8: Все о скорости сайтов

6 потоков

Page 9: Все о скорости сайтов

6 потоков

Page 10: Все о скорости сайтов

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

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

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

Page 11: Все о скорости сайтов

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

Page 12: Все о скорости сайтов

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

Page 13: Все о скорости сайтов

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

Page 14: Все о скорости сайтов

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

Page 15: Все о скорости сайтов

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

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

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

Page 16: Все о скорости сайтов

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

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

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

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

Page 17: Все о скорости сайтов

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

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

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

Page 18: Все о скорости сайтов

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

123 4

Page 19: Все о скорости сайтов

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

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

Page 20: Все о скорости сайтов

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

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

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

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

Page 21: Все о скорости сайтов

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

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

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

Page 22: Все о скорости сайтов

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

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

Page 23: Все о скорости сайтов

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

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

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

Page 24: Все о скорости сайтов

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

Page 25: Все о скорости сайтов

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

Page 26: Все о скорости сайтов

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

Page 27: Все о скорости сайтов

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

Page 28: Все о скорости сайтов

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

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

Page 29: Все о скорости сайтов

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

Page 30: Все о скорости сайтов

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

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

слайдеров

Page 31: Все о скорости сайтов

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

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

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

Page 32: Все о скорости сайтов

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

• Наконец-то

Page 33: Все о скорости сайтов

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

Page 34: Все о скорости сайтов

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

Page 35: Все о скорости сайтов

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

Page 36: Все о скорости сайтов
Page 37: Все о скорости сайтов

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

Page 38: Все о скорости сайтов

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

Page 39: Все о скорости сайтов

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

Page 40: Все о скорости сайтов
Page 41: Все о скорости сайтов

13 сек 6 сек

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

Page 42: Все о скорости сайтов

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

13 сек 6 сек

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

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

Page 43: Все о скорости сайтов

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

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

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

Page 44: Все о скорости сайтов

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

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

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

Page 45: Все о скорости сайтов

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

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

Page 46: Все о скорости сайтов

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

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

Page 47: Все о скорости сайтов

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

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

Page 48: Все о скорости сайтов

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

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

0,7 сек.

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

Page 49: Все о скорости сайтов

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

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

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

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

Page 50: Все о скорости сайтов

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

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

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

Page 51: Все о скорости сайтов

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

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

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

Page 52: Все о скорости сайтов

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

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

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

Page 53: Все о скорости сайтов

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

ОК

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

Page 54: Все о скорости сайтов

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

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

ОК

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

2 - 4 сек.

Page 55: Все о скорости сайтов

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

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

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

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

Page 56: Все о скорости сайтов

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

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