Ускорение сайт а на client-side

39
Ускорение сайта на client-side Юрий Устинов Русоникс Москва, 20 марта 2014

description

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

Transcript of Ускорение сайт а на client-side

Page 1: Ускорение сайт а на  client-side

Ускорение сайта на client-side

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

Москва, 20 марта 2014

Page 2: Ускорение сайт а на  client-side

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

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

Page 3: Ускорение сайт а на  client-side

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

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

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

Page 4: Ускорение сайт а на  client-side

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

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

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

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

Page 5: Ускорение сайт а на  client-side

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

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

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

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

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

Page 6: Ускорение сайт а на  client-side
Page 7: Ускорение сайт а на  client-side

Установка соединения

ПосетительСервер

Page 8: Ускорение сайт а на  client-side

RTT – правда жизни

Round Trip Timeвремя за которое сигнал проходит от

посетителя к серверу и обратно

Page 9: Ускорение сайт а на  client-side

Скорость света конечна, да

Москва Москва

Москва Германия

Москва Нидерланды

30-50 мс

70 мс

100 мс

Page 10: Ускорение сайт а на  client-side

Данные отправляются сегментами

• Повлиять на размер сегмента без хаков на стороне клиента нельзя

• Максимальный размер сегмента для Ethernet = 1500 байт, на практике меньше.

Page 11: Ускорение сайт а на  client-side

Страница этого семинара

• 30,4 кб / 1,4 = 22 сегмента

• 22 сегмента на RTT 100 мс = 2200 мс

• К счастью, есть окно отправки и получения данных.

Page 12: Ускорение сайт а на  client-side

Страница этого семинара

• 30,4 кб / 1,4 = 22 сегмента

• 22 сегмента на RTT 100 мс = 2200 мс

К счастью, есть окно отправки и получения данных.

Page 13: Ускорение сайт а на  client-side

TCP receive window VS

Congestion window

• Размер окна меняется по ходу передачи данных

• Стабильнее канал – больше окно• Одно окно – много сегментов за раз

Page 14: Ускорение сайт а на  client-side

Страница этого семинара

• В нашем случае 9 целых сегментов в 1 окне• 9*1400 = 12600 байт (1 окно = 1 RTT)

• 30,4 кб / 12,6 кб = 3 окна (т.е. 3 RTT)

• Итого 100 мс + 3* 100 мс = 400 мс

30,4 Кбhtml

Page 15: Ускорение сайт а на  client-side

Страница этого семинара

• В нашем случае 9 целых сегментов в 1 окне• 9*1400 = 12600 байт (1 окно = 1 RTT)

• 30,4 кб / 12,6 кб = 3 окна (т.е. 3 RTT)

• Итого 100 мс + 3* 100 мс = 400 мс

30,4 Кбhtml

Page 16: Ускорение сайт а на  client-side

Страница этого семинара

• В нашем случае 9 целых сегментов в 1 окне• 9*1400 = 12600 байт (1 окно = 1 RTT)

• 30,4 кб / 12,6 кб = 3 окна (т.е. 3 RTT)

• Итого 100 мс + 3* 100 мс = 400 мс

30,4 Кбhtml

Page 17: Ускорение сайт а на  client-side
Page 18: Ускорение сайт а на  client-side

6 потоков – важно!

Page 19: Ускорение сайт а на  client-side

6 потоков – важно!

Page 20: Ускорение сайт а на  client-side

Что же с этим теперь делать?

Page 21: Ускорение сайт а на  client-side

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

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

Page 22: Ускорение сайт а на  client-side

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

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

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

Page 23: Ускорение сайт а на  client-side

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

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

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

Page 24: Ускорение сайт а на  client-side

ОК

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

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

Page 25: Ускорение сайт а на  client-side

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

Page 26: Ускорение сайт а на  client-side

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

Page 27: Ускорение сайт а на  client-side

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

Правило 6 потоков.

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

Page 28: Ускорение сайт а на  client-side

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

Page 29: Ускорение сайт а на  client-side

Спрайты: математика

• 20 мелких повторяющихся элементов, суммарно 100 кб

• 1 окно: 12 600 байт (например)• 20 окон или 20*100 мс = 2000 мс

• 1 спрайт, 100 кб• 8 окон или 8*100 мс = 800 мс

Page 30: Ускорение сайт а на  client-side

Спрайты: математика

• 20 мелких повторяющихся элементов, суммарно 100 кб

• 1 окно: 12 600 байт (например)• 20 окон или 20*100 мс = 2000 мс

• 1 спрайт, 100 кб• 8 окон или 8*100 мс = 800 мс

Page 31: Ускорение сайт а на  client-side

Спрайты: математика

• 20 мелких повторяющихся элементов, суммарно 100 кб

• 1 окно: 12 600 байт (например)• 20 окон или 20*100 мс = 2000 мс

• 1 спрайт, 100 кб• 8 окон или 8*100 мс = 800 мс

Page 32: Ускорение сайт а на  client-side

Спрайты: математика

• 20 мелких повторяющихся элементов, суммарно 100 кб

• 1 окно: 12 600 байт (например)• 20 окон или 20*100 мс = 2000 мс

• 1 спрайт, 100 кб• 8 окон или 8*100 мс = 800 мс

Page 33: Ускорение сайт а на  client-side

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

• Не уменьшать картинки тегами в html• Сохранять в правильном формате• Lazy Loading!

• УДАЛЯТЬ служебную информацию из картинок!

Page 34: Ускорение сайт а на  client-side

Реальный пример

Сайт веб-студии

-2 Мб фон в PNG

> 15 cек

> 5 cек

Оптимизация

файлов

3 cек

Page 35: Ускорение сайт а на  client-side

Реальный пример

Сайт веб-студии

-2 Мб фон в PNG

> 15 cек

> 5 cек

Оптимизация

файлов

3 cек

Page 36: Ускорение сайт а на  client-side

Реальный пример

Сайт веб-студии

-2 Мб фон в PNG

> 15 cек

> 5 cек

Оптимизация

файлов

3 cек

Page 37: Ускорение сайт а на  client-side

SiteSpeed.ru: для клиентов

Page 38: Ускорение сайт а на  client-side

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

Page 39: Ускорение сайт а на  client-side

Хостинг, где сайты работают быстро

Спасибо :)

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

Псс-с-с! Легендарные Серверы без заботTM 2.0

с SSD для Битрикса уже в наличии!