SlideShare a Scribd company logo
Оптимизации поисковой
выдачи Яндекса
Время до первой отрисовки (TTFP) в Рунете
Агрегированные анонимные данные Яндекс.Метрики. Россия (домены в зоне .RU). Октябрь 2017. 3
Платформа Медиана (50%)
Десктопы 1015 ms
Телефоны,

Wi-Fi
1474 ms
Телефоны, Сотовая связь 1969 ms
〉Большая латентность (RTT)
〉Узкий канал (bandwidth)
〉Нестабильность характеристик, потери пакетов (плохо для
TCP)
〉Ограничения по железу (процессор, память, хранилище)
Особенности мобильного веба
4
〉Установка соединения (DNS, TCP, TLS) и отправка запроса
〉Обработка запроса на сервере
〉Доставка контента (TTFB)
〉Разбор ответа и отрисовка (TTFP)
Этапы загрузки страницы
5
Этапы загрузки страницы
Анонимные агрегированные данные мобильных пользователей Яндекс.Поиска. Срезы по скорости сети на основе
данных с front-end серверов Яндекса, по технологии сети — Network Information API. 6
0 %
25 %
50 %
75 %
100 %
Wi-Fi 3G
DNS
TCP
TLS
TTFB
TTFP
〉DNS — 1 RTT
〉TCP — 1 RTT
〉TLS — 2 RTT (возможно, больше)
〉Запрос — 1 RTT
При холодной загрузке необходимо 5 RTT.
Установка соединения и задание запроса
7
RTT в мобильных сетях
Агрегированные данные с front-end серверов Яндекса. 8
Перцентиль RTT, ms
25 % 33
50 % 77
80 % 537
90 % 1983
Медианный RTT в срезах по типу соединения
Агрегированные данные с front-end серверов Яндекса. Определение технологии сети по данным Network
Information API. 9
Технология сети median RTT, ms
Wi-Fi 36
4G 77
3G 146
2G 2211
$ ping yandex.ru
64 bytes from yandex.ru (5.255.255.70): icmp_seq=1 ttl=52 time=651 ms
64 bytes from yandex.ru (5.255.255.70): icmp_seq=2 ttl=52 time=512 ms
…
64 bytes from yandex.ru (5.255.255.70): icmp_seq=12 ttl=52 time=6506 ms
64 bytes from yandex.ru (5.255.255.70): icmp_seq=13 ttl=52 time=5506 ms
…
64 bytes from yandex.ru (5.255.255.70): icmp_seq=20 ttl=52 time=626 ms
RTT зависит от загруженности канала
RTT в мобильной 2G-сети до и во время загрузки страницы. 10
Оптимизации установки соединения
〉Не устанавливать соединение на критичном пути
〉Не делать редиректов
〉Оптимизации TLS
Оптимизации установки соединения
12
〉Переиспользовать соединения (keepalive)
〉preconnect
Загрузка первой поисковой подсказки через прогретое
соединение увеличило показы сервиса на 4.8%.
Не устанавливать соединение на критическом
пути
13
〉301 Moved Permanently
〉HSTS — HTTP Strict Transport Security
Редиректы — зло
14
TLS Session Ticket & TLS False Start
https://habrahabr.ru/company/yandex/blog/249771/ 15
ServerHello

Certificate

…
ClientHello

…
CCS

…

Finished
App Data
App Data
0 ms
100 ms
150 ms
CCS

…

Finished
Уменьшает установку TLS-соединения на 1 RTT.
Включается, если сервер:
〉использует Perfect Forward Secrecy (PFS)
〉поддерживает Application Level Protocol Negotiation (ALPN)
Ускорение установки TLS на 13% на yandex.ru на мобильных.
TLS False Start
https://habrahabr.ru/company/yandex/blog/249771/ 16
〉Удалили корневой сертификат из ECC-цепочки
сертификатов
〉Отключили OCSP stapling
Размер данных уменьшился с 7.3 КБ до 4.3 КБ (с 5 до
3-х пакетов при MTU 1500).
Ускорение TLS на 7% на yandex.ru на мобильных.
Минимизация передаваемых данных при
TLS-хэндшейке
17
ServerHello

Certificate

OCSP stapling

…
Загрузка контента
Оптимизации:
› Параллельно с тяжелыми операциями
отдавать данные клиенту для первой
отрисовки (поисковая стрелка)
› Chunked-Encoding
Обработка запроса на сервере
19
〉Все необходимые ресурсы для отрисовки находятся в начале
HTML
〉Оптимизация картинок (WebP, SVG)
〉Максимальное сжатие статики Zopfli/Brotli
〉Загрузка статики не на критическом пути отрисовки
Загрузка контента
20
70% потока картиночных тумбов в формате WebP.
Плюсы:
На 20% больше полностью загруженных выдач
На 14% меньше трафика в сторону пользователей
Минусы:
Снизился кэш-хит на кэширующих прокси
WebP
21
Сложные оптимизации могут ухудшить UX.
Главное — не перестараться
22
Разбор ответа и отрисовка
23
0
575ms
1s 150ms
1s 725ms
2s 300ms
Scripting Painting
Macbook Pro (3,1 GHz)
Samsung J1 (1,3 GHz)
Лёгкая версия поисковой
выдачи для медленных
соединений
〉Определение медленного соединения
〉Специальная вёрстка для медленных соединений
Адаптация страницы под характеристики
соединения
25
Доступные источники:
〉Метрики ядра по TCP (TCP_INFO)
〉Время установки TLS-соединения
〉Метрики от клиентов (Save-Data)
Определение медленного соединения
26
TCP_INFO
linux/include/uapi/linux/tcp.h 27
getsockopt(fd, IPPROTO_TCP, TCP_INFO, &tcpinfo, &len);
tcpinfo:
__u32 tcpi_rtt;
__u32 tcpi_rttvar;
__u32 tcpi_total_retrans;
__u32 tcpi_segs_out; /* RFC4898 tcpEStatsPerfSegsOut */
__u32 tcpi_segs_in; /* RFC4898 tcpEStatsPerfSegsIn */
…
TCP_INFO
https://nginx.ru/ru/docs/http/ngx_http_core_module.html 28
proxy_set_header X-TCP-Info “rtt=$tcpinfo_rtt, rttvar=$tcpinfo_rttvar”;
Часть метрик доступна в переменных nginx:
X-TCP-Info: rtt=74299, rttvar=3372
Время установки TLS со стороны сервера
29
SSL_accept() // 100ms
ServerHello

Certificate

…
ClientHello

…
CCS

…

Finished
App Data
App Data
0 ms
100 ms
150 ms
CCS

…

Finished
〉Размер данных для первой отрисовки (pre-search): 0.8 КБ
〉HTML/CSS меньше 14 КБ (одно TCP-окно)
〉Inplace CSS (стили в HTML расположены перед
непосредственным использованием)
〉Нет AJAX
〉Лёгкий JS
Вёрстка для медленных соединений
https://habrahabr.ru/company/yandex/blog/336952/ 30
Увеличение показов СЕРПа на 2.2%.
Профит от лёгкой версии поиска
По данным A/B эксперимента в мобильном поиске Яндекса. Март 2017. 31
Ускорение первой отрисовки от начала
запроса в поиске (нормированное)
% уменьшения задержки от начала поискового запроса до первой отрисовки мобильной поисковой выдачи среди
пользователей Яндекс.Браузера. 32
0 %
15 %
30 %
45 %
60 %
Окт. Нбр. Дек. Янв. Фев. Мрт. Апр. Май Июн. Июл. Авг. Сен.
1
2
3
Иван Хватов
Ведущий разработчик
ivaxer@yandex-team.ru lyadzhin@yandex-team.ru
Сергей Ляджин
Руководитель отдела
разработки поисковой
инфраструктуры
Спасибо

More Related Content

What's hot

Фильтрация соцсетей и лишнего трафика: использование L7 возможностей в Mikrotik
Фильтрация соцсетей и лишнего трафика: использование L7 возможностей в MikrotikФильтрация соцсетей и лишнего трафика: использование L7 возможностей в Mikrotik
Фильтрация соцсетей и лишнего трафика: использование L7 возможностей в Mikrotik
mikrotik-training
 
Антон Карпов - Сетевая безопасность
 Антон Карпов - Сетевая безопасность Антон Карпов - Сетевая безопасность
Антон Карпов - Сетевая безопасностьYandex
 
HighLoad весна 2014 лекция 5
HighLoad весна 2014 лекция 5HighLoad весна 2014 лекция 5
HighLoad весна 2014 лекция 5Technopark
 
HighLoad весна 2014 лекция 2
HighLoad весна 2014 лекция 2HighLoad весна 2014 лекция 2
HighLoad весна 2014 лекция 2Technopark
 
Снижение нагрузки на сервер с помощью NGINX
Снижение нагрузки на сервер с помощью NGINXСнижение нагрузки на сервер с помощью NGINX
Снижение нагрузки на сервер с помощью NGINXAndrii Podanenko
 
QoS и приоритезация трафика внутри VPN-туннелей
QoS и приоритезация трафика внутри VPN-туннелейQoS и приоритезация трафика внутри VPN-туннелей
QoS и приоритезация трафика внутри VPN-туннелей
mikrotik-training
 
Krizhanovsky Ddos
Krizhanovsky DdosKrizhanovsky Ddos
Krizhanovsky DdosLiudmila Li
 
Lyamin press2015
Lyamin press2015Lyamin press2015
Lyamin press2015
Alexander Lyamin
 
Александр Тоболь, Кадры решают все, или стриминг видео в Одноклассниках
Александр Тоболь, Кадры решают все, или стриминг видео в ОдноклассникахАлександр Тоболь, Кадры решают все, или стриминг видео в Одноклассниках
Александр Тоболь, Кадры решают все, или стриминг видео в Одноклассниках
Tanya Denisyuk
 
DevConf2013: Особенности применения WebSocket на примере работы в ERP системе.
DevConf2013: Особенности применения WebSocket на примере работы в ERP системе.DevConf2013: Особенности применения WebSocket на примере работы в ERP системе.
DevConf2013: Особенности применения WebSocket на примере работы в ERP системе.
Alexander Frolov
 
Анализ трафика
Анализ трафикаАнализ трафика
Анализ трафика
lectureswww lectureswww
 
HighLoad весна 2014 лекция 6
HighLoad весна 2014 лекция 6HighLoad весна 2014 лекция 6
HighLoad весна 2014 лекция 6Technopark
 
Иван Чалыкин (Россия), Digital Security. Легальный SOP Bypass. Проблемы внедр...
Иван Чалыкин (Россия), Digital Security. Легальный SOP Bypass. Проблемы внедр...Иван Чалыкин (Россия), Digital Security. Легальный SOP Bypass. Проблемы внедр...
Иван Чалыкин (Россия), Digital Security. Легальный SOP Bypass. Проблемы внедр...
KazHackStan
 
WebSockets
WebSocketsWebSockets
WebSocketsplusnin
 
KazHackStan 2017 | Tracking
KazHackStan 2017 | TrackingKazHackStan 2017 | Tracking
KazHackStan 2017 | Tracking
Дмитрий Бумов
 
Positive Hack Days. Павлов. Мастер-класс: Анализ защищенности сетевой инфраст...
Positive Hack Days. Павлов. Мастер-класс: Анализ защищенности сетевой инфраст...Positive Hack Days. Павлов. Мастер-класс: Анализ защищенности сетевой инфраст...
Positive Hack Days. Павлов. Мастер-класс: Анализ защищенности сетевой инфраст...
Positive Hack Days
 
Сокеты
СокетыСокеты
Intercepter-NG: сниффер нового поколения
Intercepter-NG: сниффер нового поколенияIntercepter-NG: сниффер нового поколения
Intercepter-NG: сниффер нового поколенияPositive Hack Days
 

What's hot (20)

Фильтрация соцсетей и лишнего трафика: использование L7 возможностей в Mikrotik
Фильтрация соцсетей и лишнего трафика: использование L7 возможностей в MikrotikФильтрация соцсетей и лишнего трафика: использование L7 возможностей в Mikrotik
Фильтрация соцсетей и лишнего трафика: использование L7 возможностей в Mikrotik
 
Lyamin hl2014
Lyamin hl2014Lyamin hl2014
Lyamin hl2014
 
Антон Карпов - Сетевая безопасность
 Антон Карпов - Сетевая безопасность Антон Карпов - Сетевая безопасность
Антон Карпов - Сетевая безопасность
 
HighLoad весна 2014 лекция 5
HighLoad весна 2014 лекция 5HighLoad весна 2014 лекция 5
HighLoad весна 2014 лекция 5
 
HighLoad весна 2014 лекция 2
HighLoad весна 2014 лекция 2HighLoad весна 2014 лекция 2
HighLoad весна 2014 лекция 2
 
Снижение нагрузки на сервер с помощью NGINX
Снижение нагрузки на сервер с помощью NGINXСнижение нагрузки на сервер с помощью NGINX
Снижение нагрузки на сервер с помощью NGINX
 
QoS и приоритезация трафика внутри VPN-туннелей
QoS и приоритезация трафика внутри VPN-туннелейQoS и приоритезация трафика внутри VPN-туннелей
QoS и приоритезация трафика внутри VPN-туннелей
 
Krizhanovsky Ddos
Krizhanovsky DdosKrizhanovsky Ddos
Krizhanovsky Ddos
 
Lyamin press2015
Lyamin press2015Lyamin press2015
Lyamin press2015
 
Александр Тоболь, Кадры решают все, или стриминг видео в Одноклассниках
Александр Тоболь, Кадры решают все, или стриминг видео в ОдноклассникахАлександр Тоболь, Кадры решают все, или стриминг видео в Одноклассниках
Александр Тоболь, Кадры решают все, или стриминг видео в Одноклассниках
 
DevConf2013: Особенности применения WebSocket на примере работы в ERP системе.
DevConf2013: Особенности применения WebSocket на примере работы в ERP системе.DevConf2013: Особенности применения WebSocket на примере работы в ERP системе.
DevConf2013: Особенности применения WebSocket на примере работы в ERP системе.
 
Анализ трафика
Анализ трафикаАнализ трафика
Анализ трафика
 
HighLoad весна 2014 лекция 6
HighLoad весна 2014 лекция 6HighLoad весна 2014 лекция 6
HighLoad весна 2014 лекция 6
 
Иван Чалыкин (Россия), Digital Security. Легальный SOP Bypass. Проблемы внедр...
Иван Чалыкин (Россия), Digital Security. Легальный SOP Bypass. Проблемы внедр...Иван Чалыкин (Россия), Digital Security. Легальный SOP Bypass. Проблемы внедр...
Иван Чалыкин (Россия), Digital Security. Легальный SOP Bypass. Проблемы внедр...
 
Ddos
DdosDdos
Ddos
 
WebSockets
WebSocketsWebSockets
WebSockets
 
KazHackStan 2017 | Tracking
KazHackStan 2017 | TrackingKazHackStan 2017 | Tracking
KazHackStan 2017 | Tracking
 
Positive Hack Days. Павлов. Мастер-класс: Анализ защищенности сетевой инфраст...
Positive Hack Days. Павлов. Мастер-класс: Анализ защищенности сетевой инфраст...Positive Hack Days. Павлов. Мастер-класс: Анализ защищенности сетевой инфраст...
Positive Hack Days. Павлов. Мастер-класс: Анализ защищенности сетевой инфраст...
 
Сокеты
СокетыСокеты
Сокеты
 
Intercepter-NG: сниффер нового поколения
Intercepter-NG: сниффер нового поколенияIntercepter-NG: сниффер нового поколения
Intercepter-NG: сниффер нового поколения
 

Similar to Оптимизации поисковой выдачи Яндекса / Иван Хватов, Сергей Ляджин (Яндекс)

МАИ, Сети ЭВМ, Лекция №2
МАИ, Сети ЭВМ, Лекция №2МАИ, Сети ЭВМ, Лекция №2
МАИ, Сети ЭВМ, Лекция №2
Dima Dzuba
 
Механика DDoS (Александр Крижановский)
Механика DDoS (Александр Крижановский)Механика DDoS (Александр Крижановский)
Механика DDoS (Александр Крижановский)Ontico
 
Web лекция 1
Web   лекция 1Web   лекция 1
Web лекция 1
Technosphere1
 
Тандемные DDoS-атаки. Проблематика уязвимостей в спецификации TCP IP (фундаме...
Тандемные DDoS-атаки. Проблематика уязвимостей в спецификации TCP IP (фундаме...Тандемные DDoS-атаки. Проблематика уязвимостей в спецификации TCP IP (фундаме...
Тандемные DDoS-атаки. Проблематика уязвимостей в спецификации TCP IP (фундаме...Fuenteovejuna
 
Построение катастрофоустойчивых и распределённых ЦОД
Построение катастрофоустойчивых и распределённых ЦОДПостроение катастрофоустойчивых и распределённых ЦОД
Построение катастрофоустойчивых и распределённых ЦОД
Cisco Russia
 
Технополис: Сетевой стек
Технополис: Сетевой стекТехнополис: Сетевой стек
Технополис: Сетевой стек
Dmitry Samsonov
 
Тандемные DDoS-атаки (Артём Гавриченков)
Тандемные DDoS-атаки (Артём Гавриченков)Тандемные DDoS-атаки (Артём Гавриченков)
Тандемные DDoS-атаки (Артём Гавриченков)Ontico
 
Тандемные DDoS-атаки / Проблематика уязвимостей в спецификации TCP/IP (фундам...
Тандемные DDoS-атаки / Проблематика уязвимостей в спецификации TCP/IP (фундам...Тандемные DDoS-атаки / Проблематика уязвимостей в спецификации TCP/IP (фундам...
Тандемные DDoS-атаки / Проблематика уязвимостей в спецификации TCP/IP (фундам...
HLL
 
Сравнение TCP/IP стека Windows Vista / Server 2008 и Windows XP / Server 2003
Сравнение TCP/IP стека Windows Vista / Server 2008 и Windows XP / Server 2003Сравнение TCP/IP стека Windows Vista / Server 2008 и Windows XP / Server 2003
Сравнение TCP/IP стека Windows Vista / Server 2008 и Windows XP / Server 2003
Andrey Beshkov
 
DataLine CloudLine Metrocluster_25 09
DataLine CloudLine Metrocluster_25 09DataLine CloudLine Metrocluster_25 09
DataLine CloudLine Metrocluster_25 09Alina Karimullina
 
Катастрофоустойчивое облако CloudLine Metrocluster (DRaaS)
Катастрофоустойчивое облако CloudLine Metrocluster (DRaaS)Катастрофоустойчивое облако CloudLine Metrocluster (DRaaS)
Катастрофоустойчивое облако CloudLine Metrocluster (DRaaS)
DataLine
 
Маршрутизаторы Cisco - от чего зависит производительность или как получить ма...
Маршрутизаторы Cisco - от чего зависит производительность или как получить ма...Маршрутизаторы Cisco - от чего зависит производительность или как получить ма...
Маршрутизаторы Cisco - от чего зависит производительность или как получить ма...
Cisco Russia
 
"Как заработать на внедрении отечественной системы ВКС в условиях импортозаме...
"Как заработать на внедрении отечественной системы ВКС в условиях импортозаме..."Как заработать на внедрении отечественной системы ВКС в условиях импортозаме...
"Как заработать на внедрении отечественной системы ВКС в условиях импортозаме...
TrueConf
 
Автоматизация: технологии и средства
Автоматизация: технологии и средстваАвтоматизация: технологии и средства
Автоматизация: технологии и средства
Cisco Russia
 
Инфрраструктура ЦОД - интерконнект от Qlogik
Инфрраструктура ЦОД - интерконнект от QlogikИнфрраструктура ЦОД - интерконнект от Qlogik
Инфрраструктура ЦОД - интерконнект от Qlogik
Expolink
 
Eugene Lisitsky Web Sockets
Eugene Lisitsky Web SocketsEugene Lisitsky Web Sockets
Eugene Lisitsky Web Socketsguest092df8
 
Программируемость коммутаторов для ЦОД Cisco Nexus
Программируемость коммутаторов для ЦОД Cisco NexusПрограммируемость коммутаторов для ЦОД Cisco Nexus
Программируемость коммутаторов для ЦОД Cisco Nexus
Cisco Russia
 
Марина Широчкина: Верстка. Вид снизу
Марина Широчкина: Верстка. Вид снизуМарина Широчкина: Верстка. Вид снизу
Марина Широчкина: Верстка. Вид снизуYandex
 
Темное настоящее и светлое будущее WebRTC
Темное настоящее и светлое будущее WebRTCТемное настоящее и светлое будущее WebRTC
Темное настоящее и светлое будущее WebRTC
Voximplant
 
Обновление продуктовой линейки защиты от DDOS Arbor Networks
Обновление продуктовой линейки защиты от DDOS Arbor NetworksОбновление продуктовой линейки защиты от DDOS Arbor Networks
Обновление продуктовой линейки защиты от DDOS Arbor Networks
Cisco Russia
 

Similar to Оптимизации поисковой выдачи Яндекса / Иван Хватов, Сергей Ляджин (Яндекс) (20)

МАИ, Сети ЭВМ, Лекция №2
МАИ, Сети ЭВМ, Лекция №2МАИ, Сети ЭВМ, Лекция №2
МАИ, Сети ЭВМ, Лекция №2
 
Механика DDoS (Александр Крижановский)
Механика DDoS (Александр Крижановский)Механика DDoS (Александр Крижановский)
Механика DDoS (Александр Крижановский)
 
Web лекция 1
Web   лекция 1Web   лекция 1
Web лекция 1
 
Тандемные DDoS-атаки. Проблематика уязвимостей в спецификации TCP IP (фундаме...
Тандемные DDoS-атаки. Проблематика уязвимостей в спецификации TCP IP (фундаме...Тандемные DDoS-атаки. Проблематика уязвимостей в спецификации TCP IP (фундаме...
Тандемные DDoS-атаки. Проблематика уязвимостей в спецификации TCP IP (фундаме...
 
Построение катастрофоустойчивых и распределённых ЦОД
Построение катастрофоустойчивых и распределённых ЦОДПостроение катастрофоустойчивых и распределённых ЦОД
Построение катастрофоустойчивых и распределённых ЦОД
 
Технополис: Сетевой стек
Технополис: Сетевой стекТехнополис: Сетевой стек
Технополис: Сетевой стек
 
Тандемные DDoS-атаки (Артём Гавриченков)
Тандемные DDoS-атаки (Артём Гавриченков)Тандемные DDoS-атаки (Артём Гавриченков)
Тандемные DDoS-атаки (Артём Гавриченков)
 
Тандемные DDoS-атаки / Проблематика уязвимостей в спецификации TCP/IP (фундам...
Тандемные DDoS-атаки / Проблематика уязвимостей в спецификации TCP/IP (фундам...Тандемные DDoS-атаки / Проблематика уязвимостей в спецификации TCP/IP (фундам...
Тандемные DDoS-атаки / Проблематика уязвимостей в спецификации TCP/IP (фундам...
 
Сравнение TCP/IP стека Windows Vista / Server 2008 и Windows XP / Server 2003
Сравнение TCP/IP стека Windows Vista / Server 2008 и Windows XP / Server 2003Сравнение TCP/IP стека Windows Vista / Server 2008 и Windows XP / Server 2003
Сравнение TCP/IP стека Windows Vista / Server 2008 и Windows XP / Server 2003
 
DataLine CloudLine Metrocluster_25 09
DataLine CloudLine Metrocluster_25 09DataLine CloudLine Metrocluster_25 09
DataLine CloudLine Metrocluster_25 09
 
Катастрофоустойчивое облако CloudLine Metrocluster (DRaaS)
Катастрофоустойчивое облако CloudLine Metrocluster (DRaaS)Катастрофоустойчивое облако CloudLine Metrocluster (DRaaS)
Катастрофоустойчивое облако CloudLine Metrocluster (DRaaS)
 
Маршрутизаторы Cisco - от чего зависит производительность или как получить ма...
Маршрутизаторы Cisco - от чего зависит производительность или как получить ма...Маршрутизаторы Cisco - от чего зависит производительность или как получить ма...
Маршрутизаторы Cisco - от чего зависит производительность или как получить ма...
 
"Как заработать на внедрении отечественной системы ВКС в условиях импортозаме...
"Как заработать на внедрении отечественной системы ВКС в условиях импортозаме..."Как заработать на внедрении отечественной системы ВКС в условиях импортозаме...
"Как заработать на внедрении отечественной системы ВКС в условиях импортозаме...
 
Автоматизация: технологии и средства
Автоматизация: технологии и средстваАвтоматизация: технологии и средства
Автоматизация: технологии и средства
 
Инфрраструктура ЦОД - интерконнект от Qlogik
Инфрраструктура ЦОД - интерконнект от QlogikИнфрраструктура ЦОД - интерконнект от Qlogik
Инфрраструктура ЦОД - интерконнект от Qlogik
 
Eugene Lisitsky Web Sockets
Eugene Lisitsky Web SocketsEugene Lisitsky Web Sockets
Eugene Lisitsky Web Sockets
 
Программируемость коммутаторов для ЦОД Cisco Nexus
Программируемость коммутаторов для ЦОД Cisco NexusПрограммируемость коммутаторов для ЦОД Cisco Nexus
Программируемость коммутаторов для ЦОД Cisco Nexus
 
Марина Широчкина: Верстка. Вид снизу
Марина Широчкина: Верстка. Вид снизуМарина Широчкина: Верстка. Вид снизу
Марина Широчкина: Верстка. Вид снизу
 
Темное настоящее и светлое будущее WebRTC
Темное настоящее и светлое будущее WebRTCТемное настоящее и светлое будущее WebRTC
Темное настоящее и светлое будущее WebRTC
 
Обновление продуктовой линейки защиты от DDOS Arbor Networks
Обновление продуктовой линейки защиты от DDOS Arbor NetworksОбновление продуктовой линейки защиты от DDOS Arbor Networks
Обновление продуктовой линейки защиты от DDOS Arbor Networks
 

More from Ontico

One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
Ontico
 
Масштабируя DNS / Артем Гавриченков (Qrator Labs)
Масштабируя DNS / Артем Гавриченков (Qrator Labs)Масштабируя DNS / Артем Гавриченков (Qrator Labs)
Масштабируя DNS / Артем Гавриченков (Qrator Labs)
Ontico
 
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Ontico
 
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Ontico
 
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
Ontico
 
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
Ontico
 
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
Ontico
 
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Ontico
 
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
Ontico
 
MySQL Replication — Advanced Features / Петр Зайцев (Percona)
MySQL Replication — Advanced Features / Петр Зайцев (Percona)MySQL Replication — Advanced Features / Петр Зайцев (Percona)
MySQL Replication — Advanced Features / Петр Зайцев (Percona)
Ontico
 
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
Ontico
 
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
Ontico
 
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
Ontico
 
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
Ontico
 
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
Ontico
 
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
Ontico
 
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Ontico
 
100500 способов кэширования в Oracle Database или как достичь максимальной ск...
100500 способов кэширования в Oracle Database или как достичь максимальной ск...100500 способов кэширования в Oracle Database или как достичь максимальной ск...
100500 способов кэширования в Oracle Database или как достичь максимальной ск...
Ontico
 
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
Ontico
 
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
Ontico
 

More from Ontico (20)

One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
 
Масштабируя DNS / Артем Гавриченков (Qrator Labs)
Масштабируя DNS / Артем Гавриченков (Qrator Labs)Масштабируя DNS / Артем Гавриченков (Qrator Labs)
Масштабируя DNS / Артем Гавриченков (Qrator Labs)
 
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
 
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
 
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
 
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
 
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
 
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
 
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
 
MySQL Replication — Advanced Features / Петр Зайцев (Percona)
MySQL Replication — Advanced Features / Петр Зайцев (Percona)MySQL Replication — Advanced Features / Петр Зайцев (Percona)
MySQL Replication — Advanced Features / Петр Зайцев (Percona)
 
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
 
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
 
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
 
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
 
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
 
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
 
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
 
100500 способов кэширования в Oracle Database или как достичь максимальной ск...
100500 способов кэширования в Oracle Database или как достичь максимальной ск...100500 способов кэширования в Oracle Database или как достичь максимальной ск...
100500 способов кэширования в Oracle Database или как достичь максимальной ск...
 
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
 
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
 

Оптимизации поисковой выдачи Яндекса / Иван Хватов, Сергей Ляджин (Яндекс)

  • 1.
  • 3. Время до первой отрисовки (TTFP) в Рунете Агрегированные анонимные данные Яндекс.Метрики. Россия (домены в зоне .RU). Октябрь 2017. 3 Платформа Медиана (50%) Десктопы 1015 ms Телефоны,
 Wi-Fi 1474 ms Телефоны, Сотовая связь 1969 ms
  • 4. 〉Большая латентность (RTT) 〉Узкий канал (bandwidth) 〉Нестабильность характеристик, потери пакетов (плохо для TCP) 〉Ограничения по железу (процессор, память, хранилище) Особенности мобильного веба 4
  • 5. 〉Установка соединения (DNS, TCP, TLS) и отправка запроса 〉Обработка запроса на сервере 〉Доставка контента (TTFB) 〉Разбор ответа и отрисовка (TTFP) Этапы загрузки страницы 5
  • 6. Этапы загрузки страницы Анонимные агрегированные данные мобильных пользователей Яндекс.Поиска. Срезы по скорости сети на основе данных с front-end серверов Яндекса, по технологии сети — Network Information API. 6 0 % 25 % 50 % 75 % 100 % Wi-Fi 3G DNS TCP TLS TTFB TTFP
  • 7. 〉DNS — 1 RTT 〉TCP — 1 RTT 〉TLS — 2 RTT (возможно, больше) 〉Запрос — 1 RTT При холодной загрузке необходимо 5 RTT. Установка соединения и задание запроса 7
  • 8. RTT в мобильных сетях Агрегированные данные с front-end серверов Яндекса. 8 Перцентиль RTT, ms 25 % 33 50 % 77 80 % 537 90 % 1983
  • 9. Медианный RTT в срезах по типу соединения Агрегированные данные с front-end серверов Яндекса. Определение технологии сети по данным Network Information API. 9 Технология сети median RTT, ms Wi-Fi 36 4G 77 3G 146 2G 2211
  • 10. $ ping yandex.ru 64 bytes from yandex.ru (5.255.255.70): icmp_seq=1 ttl=52 time=651 ms 64 bytes from yandex.ru (5.255.255.70): icmp_seq=2 ttl=52 time=512 ms … 64 bytes from yandex.ru (5.255.255.70): icmp_seq=12 ttl=52 time=6506 ms 64 bytes from yandex.ru (5.255.255.70): icmp_seq=13 ttl=52 time=5506 ms … 64 bytes from yandex.ru (5.255.255.70): icmp_seq=20 ttl=52 time=626 ms RTT зависит от загруженности канала RTT в мобильной 2G-сети до и во время загрузки страницы. 10
  • 12. 〉Не устанавливать соединение на критичном пути 〉Не делать редиректов 〉Оптимизации TLS Оптимизации установки соединения 12
  • 13. 〉Переиспользовать соединения (keepalive) 〉preconnect Загрузка первой поисковой подсказки через прогретое соединение увеличило показы сервиса на 4.8%. Не устанавливать соединение на критическом пути 13
  • 14. 〉301 Moved Permanently 〉HSTS — HTTP Strict Transport Security Редиректы — зло 14
  • 15. TLS Session Ticket & TLS False Start https://habrahabr.ru/company/yandex/blog/249771/ 15 ServerHello
 Certificate
 … ClientHello
 … CCS
 …
 Finished App Data App Data 0 ms 100 ms 150 ms CCS
 …
 Finished
  • 16. Уменьшает установку TLS-соединения на 1 RTT. Включается, если сервер: 〉использует Perfect Forward Secrecy (PFS) 〉поддерживает Application Level Protocol Negotiation (ALPN) Ускорение установки TLS на 13% на yandex.ru на мобильных. TLS False Start https://habrahabr.ru/company/yandex/blog/249771/ 16
  • 17. 〉Удалили корневой сертификат из ECC-цепочки сертификатов 〉Отключили OCSP stapling Размер данных уменьшился с 7.3 КБ до 4.3 КБ (с 5 до 3-х пакетов при MTU 1500). Ускорение TLS на 7% на yandex.ru на мобильных. Минимизация передаваемых данных при TLS-хэндшейке 17 ServerHello
 Certificate
 OCSP stapling
 …
  • 19. Оптимизации: › Параллельно с тяжелыми операциями отдавать данные клиенту для первой отрисовки (поисковая стрелка) › Chunked-Encoding Обработка запроса на сервере 19
  • 20. 〉Все необходимые ресурсы для отрисовки находятся в начале HTML 〉Оптимизация картинок (WebP, SVG) 〉Максимальное сжатие статики Zopfli/Brotli 〉Загрузка статики не на критическом пути отрисовки Загрузка контента 20
  • 21. 70% потока картиночных тумбов в формате WebP. Плюсы: На 20% больше полностью загруженных выдач На 14% меньше трафика в сторону пользователей Минусы: Снизился кэш-хит на кэширующих прокси WebP 21
  • 22. Сложные оптимизации могут ухудшить UX. Главное — не перестараться 22
  • 23. Разбор ответа и отрисовка 23 0 575ms 1s 150ms 1s 725ms 2s 300ms Scripting Painting Macbook Pro (3,1 GHz) Samsung J1 (1,3 GHz)
  • 24. Лёгкая версия поисковой выдачи для медленных соединений
  • 25. 〉Определение медленного соединения 〉Специальная вёрстка для медленных соединений Адаптация страницы под характеристики соединения 25
  • 26. Доступные источники: 〉Метрики ядра по TCP (TCP_INFO) 〉Время установки TLS-соединения 〉Метрики от клиентов (Save-Data) Определение медленного соединения 26
  • 27. TCP_INFO linux/include/uapi/linux/tcp.h 27 getsockopt(fd, IPPROTO_TCP, TCP_INFO, &tcpinfo, &len); tcpinfo: __u32 tcpi_rtt; __u32 tcpi_rttvar; __u32 tcpi_total_retrans; __u32 tcpi_segs_out; /* RFC4898 tcpEStatsPerfSegsOut */ __u32 tcpi_segs_in; /* RFC4898 tcpEStatsPerfSegsIn */ …
  • 28. TCP_INFO https://nginx.ru/ru/docs/http/ngx_http_core_module.html 28 proxy_set_header X-TCP-Info “rtt=$tcpinfo_rtt, rttvar=$tcpinfo_rttvar”; Часть метрик доступна в переменных nginx: X-TCP-Info: rtt=74299, rttvar=3372
  • 29. Время установки TLS со стороны сервера 29 SSL_accept() // 100ms ServerHello
 Certificate
 … ClientHello
 … CCS
 …
 Finished App Data App Data 0 ms 100 ms 150 ms CCS
 …
 Finished
  • 30. 〉Размер данных для первой отрисовки (pre-search): 0.8 КБ 〉HTML/CSS меньше 14 КБ (одно TCP-окно) 〉Inplace CSS (стили в HTML расположены перед непосредственным использованием) 〉Нет AJAX 〉Лёгкий JS Вёрстка для медленных соединений https://habrahabr.ru/company/yandex/blog/336952/ 30
  • 31. Увеличение показов СЕРПа на 2.2%. Профит от лёгкой версии поиска По данным A/B эксперимента в мобильном поиске Яндекса. Март 2017. 31
  • 32. Ускорение первой отрисовки от начала запроса в поиске (нормированное) % уменьшения задержки от начала поискового запроса до первой отрисовки мобильной поисковой выдачи среди пользователей Яндекс.Браузера. 32 0 % 15 % 30 % 45 % 60 % Окт. Нбр. Дек. Янв. Фев. Мрт. Апр. Май Июн. Июл. Авг. Сен. 1 2 3
  • 33. Иван Хватов Ведущий разработчик ivaxer@yandex-team.ru lyadzhin@yandex-team.ru Сергей Ляджин Руководитель отдела разработки поисковой инфраструктуры Спасибо