latency, Сергей Высоцкий
DESCRIPTION
Фраза "ваш сайт тормозит" является эквивалентом бага "ваше приложение не работает". Современный интернет уже давно сложнее этих слов и для того чтобы формализовать эту короткую фразу нам потребуется немного посмотреть на то, как работает веб. Начнем с магических пони, приносящих веб-странички, и закончим простыми метриками и разбором HTTP архивов. Ничего сложного не будет - просто ряд ответов, которые крайне редко можно услышать на собеседованиях.TRANSCRIPT
Latency
Медленный сайт-50 к лояльности-20 к надежности
Почему интернеты такие медленные?
Как работают интернеты?
Клиент СерверИнтернет
maps.2gis.ru
Клиент СерверИнтернет
maps.2gis.ru
DNS
Клиент СерверИнтернет
maps.2gis.ru
DNSDNS
lookup
Клиент СерверИнтернет
maps.2gis.ru
DNSDNS
lookup
Клиент Сервер
maps.2gis.ru
IP IP
роутинг
R
RR
R
R
Клиент Сервер
maps.2gis.ru
IP IP
TCP Сессия
R
RR
R
RИнтернет
Клиент Сервер
maps.2gis.ru
IP IP
TCP Сессия
R
RR
R
RИнтернет
Tcp congestion window
написали письмо отнесли на почту
Вы(отправитель)
Они(получатель)
это
мое
клевое
письмо
Вы(отправитель)
Они(получатель)
это
мое
клевое
письмо
Вы(отправитель)
Они(получатель)
Вы(отправитель)
Они(получатель)
это
мое
клевое
письмо
Вы(отправитель)
Они(получатель)
это
мое
клевое
письмо
Вы(отправитель)
Они(получатель)
это
мое
клевое
письмо
4
Вы(отправитель)
Они(получатель)
это
мое
клевое
письмо
Вы(отправитель)
Они(получатель)
это
мое
2
письмо
Вы(отправитель)
Они(получатель)
это
мое
4
письмо
Вы(отправитель)
Они(получатель)
это
мое
4
письмо
Где!?!
это мое письмо
421
это мое письмо
421
Перешли пожалуйста #3
это мое письмо
421
Перешли пожалуйста #3
клевое
3
Да, конечно. Вот оно
Вы(клиент)
они(сервер)
Tcp сессия
IP роутинг
1 2 3 4
IP IPIPIP
Клиент Сервер
maps.2gis.ru
IP IP
R
RR
R
RИнтернет
Клиент Сервер
maps.2gis.ru
IP IP
R
RR
R
RИнтернет
TCP TCP
Клиент Сервер
maps.2gis.ru
IP IP
R
RR
R
RИнтернет
TCP
SSL
TCP
SSL
Клиент Сервер
maps.2gis.ru
IP IP
HTTP „стэк“
R
RR
R
RИнтернет
TCP
SSL
HTTP
TCP
SSL
HTTP
Клиент Сервер
Клиент Сервер
TCP SYN („надо поговорить“)
TCP SYN ACK(„ОК, согласен“)
TCP ACK(„ОК, мы говорим“)
Клиент Сервер
TCP SYN („надо поговорить“)
TCP SYN ACK(„ОК, согласен“)
TCP ACK(„ОК, мы говорим“)
SSL(„нас могут подслушивать“)
SSL(„держи ключик“)
Клиент Сервер
TCP SYN („надо поговорить“)
TCP SYN ACK(„ОК, согласен“)
TCP ACK(„ОК, мы говорим“)
SSL(„нас могут подслушивать“)
SSL(„держи ключик“)
HTTP GET / („дай мне свою домашнюю страничку“)
HTTP 200 („Да, конечно!“)
index.html („Вот она“)
[img js css] („и это тоже держи“)
немногозадумался
пиу-пиу-пиуНеистово рендерит
Клиент Сервер
TCP SYN („надо поговорить“)
TCP SYN ACK(„ОК, согласен“)
TCP ACK(„ОК, мы говорим“)
SSL(„нас могут подслушивать“)
SSL(„держи ключик“)
HTTP GET / („дай мне свою домашнюю страничку“)
HTTP 200 („Да, конечно!“)
index.html („Вот она“)
[img js css] („и это тоже держи“)
TCP FIN („спасибо, пока!“)
TCP FIN ACK („незачто! Приходите еще!“)
немногозадумался
пиу-пиу-пиуНеистово рендерит
Index.html
Script.js
Style.css
Button.gif
Photo.jpg
Background.gif
DNS lookup
Background.gif
простой на хосте Время доставки
Page load это сложно" "AjaxCDN
Document vs. EventМобилки
Third-partyПлагинчики и эмбеды
maps.2gis.ru в chrome116 запросов
62 соединения25 доменов
браузер Сервер
аналитика
тайлики
сайтик
Сервер
Сервер
браузер Сервер
аналитика
тайлики
сайтик
Сервер
Сервер
Вашу мать...
Что важно?Когда сайтом можно будет
пользоваться так, как задумали дизайнеры?
Мы контролируем
Latency на сервереНагрузочные тесты
Пассивный мониторинг
сеть с известными параметрами
Активный мониторинг
Людям не нравится
Рендеринг страницыHTTP Waterfall хотя бы по
праздникам
Суммарное latencyСнимать измерения с разных точек
Пользовательское окружениеРазные браузеры
Разное железо
THE ENDTHE END