![Page 1: NoBigData - потоковая система аналитики clientside производительности, Сергей Рыжиков, Александр Сербул (1С-Битрикс)](https://reader034.vdocuments.pub/reader034/viewer/2022052602/559af6a11a28ab82458b456b/html5/thumbnails/1.jpg)
NoBigData: потоковая система
аналитики ClientSide-
производительности в
реальном времени
Сергей Рыжиков,
Александр Сербул
![Page 2: NoBigData - потоковая система аналитики clientside производительности, Сергей Рыжиков, Александр Сербул (1С-Битрикс)](https://reader034.vdocuments.pub/reader034/viewer/2022052602/559af6a11a28ab82458b456b/html5/thumbnails/2.jpg)
Скорость сайта
![Page 3: NoBigData - потоковая система аналитики clientside производительности, Сергей Рыжиков, Александр Сербул (1С-Битрикс)](https://reader034.vdocuments.pub/reader034/viewer/2022052602/559af6a11a28ab82458b456b/html5/thumbnails/3.jpg)
Какой сайт считается быстрым?
Быстро генерируется, минимальное число запросов…
Есть только один критерий с
точки зрения клиента -
насколько быстро
отображается сайт.
![Page 4: NoBigData - потоковая система аналитики clientside производительности, Сергей Рыжиков, Александр Сербул (1С-Битрикс)](https://reader034.vdocuments.pub/reader034/viewer/2022052602/559af6a11a28ab82458b456b/html5/thumbnails/4.jpg)
Скорость – это фича
• Человек замечает: 100–
200 мс
• «Тормознутость»: >300
мс
• Переключение
внимания: >1000 мс
![Page 5: NoBigData - потоковая система аналитики clientside производительности, Сергей Рыжиков, Александр Сербул (1С-Битрикс)](https://reader034.vdocuments.pub/reader034/viewer/2022052602/559af6a11a28ab82458b456b/html5/thumbnails/5.jpg)
HTML
JS
CSS
Графика
Динамика загрузки страниц
![Page 6: NoBigData - потоковая система аналитики clientside производительности, Сергей Рыжиков, Александр Сербул (1С-Битрикс)](https://reader034.vdocuments.pub/reader034/viewer/2022052602/559af6a11a28ab82458b456b/html5/thumbnails/6.jpg)
Производительность и скорость проекта.
Наши технологии:
• Технология кеширования:
автокеширование, html-
кеширование;
• Сжатие и объединение css и js;
• Композитный сайт;
• Инструменты отладки;
• Монитор производительности;
• Ускорение сайтов – CDN;
• Инспектор сайта.
![Page 7: NoBigData - потоковая система аналитики clientside производительности, Сергей Рыжиков, Александр Сербул (1С-Битрикс)](https://reader034.vdocuments.pub/reader034/viewer/2022052602/559af6a11a28ab82458b456b/html5/thumbnails/7.jpg)
Три точки мониторинга
![Page 8: NoBigData - потоковая система аналитики clientside производительности, Сергей Рыжиков, Александр Сербул (1С-Битрикс)](https://reader034.vdocuments.pub/reader034/viewer/2022052602/559af6a11a28ab82458b456b/html5/thumbnails/8.jpg)
У людей сайт отображается иначе
![Page 9: NoBigData - потоковая система аналитики clientside производительности, Сергей Рыжиков, Александр Сербул (1С-Битрикс)](https://reader034.vdocuments.pub/reader034/viewer/2022052602/559af6a11a28ab82458b456b/html5/thumbnails/9.jpg)
Посетители сайта
![Page 10: NoBigData - потоковая система аналитики clientside производительности, Сергей Рыжиков, Александр Сербул (1С-Битрикс)](https://reader034.vdocuments.pub/reader034/viewer/2022052602/559af6a11a28ab82458b456b/html5/thumbnails/10.jpg)
![Page 11: NoBigData - потоковая система аналитики clientside производительности, Сергей Рыжиков, Александр Сербул (1С-Битрикс)](https://reader034.vdocuments.pub/reader034/viewer/2022052602/559af6a11a28ab82458b456b/html5/thumbnails/11.jpg)
![Page 12: NoBigData - потоковая система аналитики clientside производительности, Сергей Рыжиков, Александр Сербул (1С-Битрикс)](https://reader034.vdocuments.pub/reader034/viewer/2022052602/559af6a11a28ab82458b456b/html5/thumbnails/12.jpg)
![Page 13: NoBigData - потоковая система аналитики clientside производительности, Сергей Рыжиков, Александр Сербул (1С-Битрикс)](https://reader034.vdocuments.pub/reader034/viewer/2022052602/559af6a11a28ab82458b456b/html5/thumbnails/13.jpg)
![Page 14: NoBigData - потоковая система аналитики clientside производительности, Сергей Рыжиков, Александр Сербул (1С-Битрикс)](https://reader034.vdocuments.pub/reader034/viewer/2022052602/559af6a11a28ab82458b456b/html5/thumbnails/14.jpg)
![Page 15: NoBigData - потоковая система аналитики clientside производительности, Сергей Рыжиков, Александр Сербул (1С-Битрикс)](https://reader034.vdocuments.pub/reader034/viewer/2022052602/559af6a11a28ab82458b456b/html5/thumbnails/15.jpg)
• 21 273 сайтов
• 84 879 доменов
• 52 млн хитов/сутки
• 43 млн уникальных посетителей
Аудитория Рунета - 68,7 млн человек
Скорость сайтов на «1С-Битрикс»
Источник: Фонд «Общественное мнение», апрель 2014
![Page 16: NoBigData - потоковая система аналитики clientside производительности, Сергей Рыжиков, Александр Сербул (1С-Битрикс)](https://reader034.vdocuments.pub/reader034/viewer/2022052602/559af6a11a28ab82458b456b/html5/thumbnails/16.jpg)
22%
48%
20%
6%
4%
Очень быстро
Быстро
Не быстро
Медленно
Очень медленно
Скорость сайтов на «1С-Битрикс»
![Page 17: NoBigData - потоковая система аналитики clientside производительности, Сергей Рыжиков, Александр Сербул (1С-Битрикс)](https://reader034.vdocuments.pub/reader034/viewer/2022052602/559af6a11a28ab82458b456b/html5/thumbnails/17.jpg)
«Все, что можно наблюдать и измерить, можно
улучшить»
Боб Парсонс, основатель GoDaddy.
«Все, что можно наблюдать и измерить, обязательно начинает улучшаться»
![Page 18: NoBigData - потоковая система аналитики clientside производительности, Сергей Рыжиков, Александр Сербул (1С-Битрикс)](https://reader034.vdocuments.pub/reader034/viewer/2022052602/559af6a11a28ab82458b456b/html5/thumbnails/18.jpg)
На примере одного из проектов
Медленно (1,95 сек.)
![Page 19: NoBigData - потоковая система аналитики clientside производительности, Сергей Рыжиков, Александр Сербул (1С-Битрикс)](https://reader034.vdocuments.pub/reader034/viewer/2022052602/559af6a11a28ab82458b456b/html5/thumbnails/19.jpg)
На примере одного из проектов
1. Переезд на хостинг в Россию
Не быстро (1,45 сек.)
![Page 20: NoBigData - потоковая система аналитики clientside производительности, Сергей Рыжиков, Александр Сербул (1С-Битрикс)](https://reader034.vdocuments.pub/reader034/viewer/2022052602/559af6a11a28ab82458b456b/html5/thumbnails/20.jpg)
На примере одного из проектов
Не быстро (1,05 сек.)
1. Переезд на хостинг в Россию
2. Сжатие CSS и JS
![Page 21: NoBigData - потоковая система аналитики clientside производительности, Сергей Рыжиков, Александр Сербул (1С-Битрикс)](https://reader034.vdocuments.pub/reader034/viewer/2022052602/559af6a11a28ab82458b456b/html5/thumbnails/21.jpg)
На примере одного из проектов
Быстро (0,75 сек.)
1. Переезд на хостинг в Россию
2. Сжатие CSS и JS
3. Переход на стандартные компоненты
![Page 22: NoBigData - потоковая система аналитики clientside производительности, Сергей Рыжиков, Александр Сербул (1С-Битрикс)](https://reader034.vdocuments.pub/reader034/viewer/2022052602/559af6a11a28ab82458b456b/html5/thumbnails/22.jpg)
На примере одного из проектов
Очень быстро (0,35 сек.)
1. Переезд на хостинг в Россию
2. Сжатие CSS и JS
3. Переход на стандартные компоненты
4. Включение композитного режима
![Page 23: NoBigData - потоковая система аналитики clientside производительности, Сергей Рыжиков, Александр Сербул (1С-Битрикс)](https://reader034.vdocuments.pub/reader034/viewer/2022052602/559af6a11a28ab82458b456b/html5/thumbnails/23.jpg)
Технология «Композитный сайт» дает самый
большой прирост скорости отображения сайта
![Page 24: NoBigData - потоковая система аналитики clientside производительности, Сергей Рыжиков, Александр Сербул (1С-Битрикс)](https://reader034.vdocuments.pub/reader034/viewer/2022052602/559af6a11a28ab82458b456b/html5/thumbnails/24.jpg)
Традиционный подход…
• Серверный мониторинг «скоростей»:
- Nagios/munin
- Zabbix/Cacti
- Распределенный мониторинг
- Функциональное тестирование
![Page 25: NoBigData - потоковая система аналитики clientside производительности, Сергей Рыжиков, Александр Сербул (1С-Битрикс)](https://reader034.vdocuments.pub/reader034/viewer/2022052602/559af6a11a28ab82458b456b/html5/thumbnails/25.jpg)
«Серверный» мониторинг
![Page 26: NoBigData - потоковая система аналитики clientside производительности, Сергей Рыжиков, Александр Сербул (1С-Битрикс)](https://reader034.vdocuments.pub/reader034/viewer/2022052602/559af6a11a28ab82458b456b/html5/thumbnails/26.jpg)
«Серверный» мониторинг - нагрузка
![Page 27: NoBigData - потоковая система аналитики clientside производительности, Сергей Рыжиков, Александр Сербул (1С-Битрикс)](https://reader034.vdocuments.pub/reader034/viewer/2022052602/559af6a11a28ab82458b456b/html5/thumbnails/27.jpg)
«Серверный» мониторинг - память
![Page 28: NoBigData - потоковая система аналитики clientside производительности, Сергей Рыжиков, Александр Сербул (1С-Битрикс)](https://reader034.vdocuments.pub/reader034/viewer/2022052602/559af6a11a28ab82458b456b/html5/thumbnails/28.jpg)
«Серверный» мониторинг - swap
![Page 29: NoBigData - потоковая система аналитики clientside производительности, Сергей Рыжиков, Александр Сербул (1С-Битрикс)](https://reader034.vdocuments.pub/reader034/viewer/2022052602/559af6a11a28ab82458b456b/html5/thumbnails/29.jpg)
«Серверный» мониторинг – админочки,
гистограмочки
![Page 30: NoBigData - потоковая система аналитики clientside производительности, Сергей Рыжиков, Александр Сербул (1С-Битрикс)](https://reader034.vdocuments.pub/reader034/viewer/2022052602/559af6a11a28ab82458b456b/html5/thumbnails/30.jpg)
«Серверный» мониторинг – Pinba
![Page 31: NoBigData - потоковая система аналитики clientside производительности, Сергей Рыжиков, Александр Сербул (1С-Битрикс)](https://reader034.vdocuments.pub/reader034/viewer/2022052602/559af6a11a28ab82458b456b/html5/thumbnails/31.jpg)
Нужно быть очень умным…• Анализировать графики
• Написать много скриптов
• Обложить систему тестами
• Научиться «трактовать»
цифры
• Тренироваться
![Page 32: NoBigData - потоковая система аналитики clientside производительности, Сергей Рыжиков, Александр Сербул (1С-Битрикс)](https://reader034.vdocuments.pub/reader034/viewer/2022052602/559af6a11a28ab82458b456b/html5/thumbnails/32.jpg)
![Page 33: NoBigData - потоковая система аналитики clientside производительности, Сергей Рыжиков, Александр Сербул (1С-Битрикс)](https://reader034.vdocuments.pub/reader034/viewer/2022052602/559af6a11a28ab82458b456b/html5/thumbnails/33.jpg)
А сайт продолжает тормозить…
• Последняя миля
• Wi-Fi / 4G / LTE - задержки
• Torrent-клиенты
• Сосед играет в “World Of Tanks”
• Тормозит браузер/компьютер
• «Тяжелый» javascript
![Page 34: NoBigData - потоковая система аналитики clientside производительности, Сергей Рыжиков, Александр Сербул (1С-Битрикс)](https://reader034.vdocuments.pub/reader034/viewer/2022052602/559af6a11a28ab82458b456b/html5/thumbnails/34.jpg)
![Page 35: NoBigData - потоковая система аналитики clientside производительности, Сергей Рыжиков, Александр Сербул (1С-Битрикс)](https://reader034.vdocuments.pub/reader034/viewer/2022052602/559af6a11a28ab82458b456b/html5/thumbnails/35.jpg)
Navigation Timing API
![Page 36: NoBigData - потоковая система аналитики clientside производительности, Сергей Рыжиков, Александр Сербул (1С-Битрикс)](https://reader034.vdocuments.pub/reader034/viewer/2022052602/559af6a11a28ab82458b456b/html5/thumbnails/36.jpg)
Соберем и проанализируем?
• Собираем метрики в JS браузера и
отправляем
• От 500-1500 запросов на вставку в секунду
• Гистограмма распределения, онлайн
• Последние N-хитов
• Понятный «Индекс» скорости сайта
• Очистка устаревших данных
![Page 37: NoBigData - потоковая система аналитики clientside производительности, Сергей Рыжиков, Александр Сербул (1С-Битрикс)](https://reader034.vdocuments.pub/reader034/viewer/2022052602/559af6a11a28ab82458b456b/html5/thumbnails/37.jpg)
Архитектура «потоковых» обработчиков
• «Mining of Massive Datasets»: Leskovec, Rajaraman, Ullman (Stanford University)
![Page 38: NoBigData - потоковая система аналитики clientside производительности, Сергей Рыжиков, Александр Сербул (1С-Битрикс)](https://reader034.vdocuments.pub/reader034/viewer/2022052602/559af6a11a28ab82458b456b/html5/thumbnails/38.jpg)
Обработка информационных
потоков• Hashing, randomizing
• «Тервер» – я тебя люблю и помню
• Bloom-filtering, Flajolet-Martin …
• «Базки нету»
• Памяти мало
![Page 39: NoBigData - потоковая система аналитики clientside производительности, Сергей Рыжиков, Александр Сербул (1С-Битрикс)](https://reader034.vdocuments.pub/reader034/viewer/2022052602/559af6a11a28ab82458b456b/html5/thumbnails/39.jpg)
![Page 40: NoBigData - потоковая система аналитики clientside производительности, Сергей Рыжиков, Александр Сербул (1С-Битрикс)](https://reader034.vdocuments.pub/reader034/viewer/2022052602/559af6a11a28ab82458b456b/html5/thumbnails/40.jpg)
Готовый «кубик» - Amazon Kinesis
• 1 shard: <=1000 вставок/сек, <=1МБ/сек
• <50 КБ в пакете
• Чтение: <=5 чтений/сек, <=2МБ/сек
• Хранение данных потока - до суток
• 1,000,000 вставок - $0.033
• 1 shard/час - $0.017
• Всего: ~50$/мес за 1 shard
![Page 41: NoBigData - потоковая система аналитики clientside производительности, Сергей Рыжиков, Александр Сербул (1С-Битрикс)](https://reader034.vdocuments.pub/reader034/viewer/2022052602/559af6a11a28ab82458b456b/html5/thumbnails/41.jpg)
Как «лить» в Kinesis?
• Авторизация в Amazon Web Services, v.4
• POST
• Неблокирующие сокеты
• nginx?
• Модуль для nginx?
• Где ставить cookies?
![Page 42: NoBigData - потоковая система аналитики clientside производительности, Сергей Рыжиков, Александр Сербул (1С-Битрикс)](https://reader034.vdocuments.pub/reader034/viewer/2022052602/559af6a11a28ab82458b456b/html5/thumbnails/42.jpg)
Nginx + Lua – просто и быстро
• Lua nginx module
• «Почти» javascript
• Неблокирующие сокеты
• Реализация – 2 дня
![Page 43: NoBigData - потоковая система аналитики clientside производительности, Сергей Рыжиков, Александр Сербул (1С-Битрикс)](https://reader034.vdocuments.pub/reader034/viewer/2022052602/559af6a11a28ab82458b456b/html5/thumbnails/43.jpg)
Nginx + Lua – просто и быстро
![Page 44: NoBigData - потоковая система аналитики clientside производительности, Сергей Рыжиков, Александр Сербул (1С-Битрикс)](https://reader034.vdocuments.pub/reader034/viewer/2022052602/559af6a11a28ab82458b456b/html5/thumbnails/44.jpg)
Kinesis – статистика обработки
![Page 45: NoBigData - потоковая система аналитики clientside производительности, Сергей Рыжиков, Александр Сербул (1С-Битрикс)](https://reader034.vdocuments.pub/reader034/viewer/2022052602/559af6a11a28ab82458b456b/html5/thumbnails/45.jpg)
Обработчики «потока»
![Page 46: NoBigData - потоковая система аналитики clientside производительности, Сергей Рыжиков, Александр Сербул (1С-Битрикс)](https://reader034.vdocuments.pub/reader034/viewer/2022052602/559af6a11a28ab82458b456b/html5/thumbnails/46.jpg)
Обработчики «потока»
• 8 workers, PHP
• 1 «чистильщик», PHP, SQS
![Page 47: NoBigData - потоковая система аналитики clientside производительности, Сергей Рыжиков, Александр Сербул (1С-Битрикс)](https://reader034.vdocuments.pub/reader034/viewer/2022052602/559af6a11a28ab82458b456b/html5/thumbnails/47.jpg)
Агрегация, гистограммы
• NoSQL – DynamoDB
• 1000 последних хитов (индекс)
• Профили пользователей
• Гистограмма, индекс скорости сайта
• История хитов
• Очистка: SQS, эвристика
![Page 48: NoBigData - потоковая система аналитики clientside производительности, Сергей Рыжиков, Александр Сербул (1С-Битрикс)](https://reader034.vdocuments.pub/reader034/viewer/2022052602/559af6a11a28ab82458b456b/html5/thumbnails/48.jpg)
Модель данных
![Page 49: NoBigData - потоковая система аналитики clientside производительности, Сергей Рыжиков, Александр Сербул (1С-Битрикс)](https://reader034.vdocuments.pub/reader034/viewer/2022052602/559af6a11a28ab82458b456b/html5/thumbnails/49.jpg)
«Льем» данные в DynamoDB
![Page 50: NoBigData - потоковая система аналитики clientside производительности, Сергей Рыжиков, Александр Сербул (1С-Битрикс)](https://reader034.vdocuments.pub/reader034/viewer/2022052602/559af6a11a28ab82458b456b/html5/thumbnails/50.jpg)
Производительность, задержки
![Page 51: NoBigData - потоковая система аналитики clientside производительности, Сергей Рыжиков, Александр Сербул (1С-Битрикс)](https://reader034.vdocuments.pub/reader034/viewer/2022052602/559af6a11a28ab82458b456b/html5/thumbnails/51.jpg)
Агрегация в online
• Окно – 1000 хитов
• Всего: ~80 млн.
• Выборка –
по индексу
• Чтение – PK
• No ad-hoc
• Очистка –
эвристика
с SQS
![Page 52: NoBigData - потоковая система аналитики clientside производительности, Сергей Рыжиков, Александр Сербул (1С-Битрикс)](https://reader034.vdocuments.pub/reader034/viewer/2022052602/559af6a11a28ab82458b456b/html5/thumbnails/52.jpg)
Автоскейлинг DynamoDB
• Пишем сами
![Page 53: NoBigData - потоковая система аналитики clientside производительности, Сергей Рыжиков, Александр Сербул (1С-Битрикс)](https://reader034.vdocuments.pub/reader034/viewer/2022052602/559af6a11a28ab82458b456b/html5/thumbnails/53.jpg)
Затраты на DynamoDB
• Запись в мес: ~ $400 (максимум)
• Место: $0.283/GB * 27 = ~$7
• Чтения в мес: ~ $10 (максимум)
Автоскейлинг – снижение расходов в 2-4 раза.
Увеличение мощности – 1-2 минуты.
![Page 54: NoBigData - потоковая система аналитики clientside производительности, Сергей Рыжиков, Александр Сербул (1С-Битрикс)](https://reader034.vdocuments.pub/reader034/viewer/2022052602/559af6a11a28ab82458b456b/html5/thumbnails/54.jpg)
Упрощенная схема
![Page 55: NoBigData - потоковая система аналитики clientside производительности, Сергей Рыжиков, Александр Сербул (1С-Битрикс)](https://reader034.vdocuments.pub/reader034/viewer/2022052602/559af6a11a28ab82458b456b/html5/thumbnails/55.jpg)
• 21 273 сайтов
• 84 879 доменов
• 52 млн хитов/сутки
• 43 млн уникальных посетителей
Аудитория Рунета - 68,7 млн человек
Скорость сайтов на «1С-Битрикс»
Источник: Фонд «Общественное мнение», апрель 2014
![Page 56: NoBigData - потоковая система аналитики clientside производительности, Сергей Рыжиков, Александр Сербул (1С-Битрикс)](https://reader034.vdocuments.pub/reader034/viewer/2022052602/559af6a11a28ab82458b456b/html5/thumbnails/56.jpg)
Затраты
• Проектирование и реализация – три недели,
~$1000
• Эксплуатация (в мес):
- Kinesis: ~ $50-100
- DynamoDB: ~ $200
- Серверы с workers и nginx/Lua: ~$200
Итого: ~$500 в мес (+ трафик $100-200)
![Page 57: NoBigData - потоковая система аналитики clientside производительности, Сергей Рыжиков, Александр Сербул (1С-Битрикс)](https://reader034.vdocuments.pub/reader034/viewer/2022052602/559af6a11a28ab82458b456b/html5/thumbnails/57.jpg)
Сергей Рыжиков
@rsv_bitrix
Спасибо за внимание!
Вопросы?
Александр Сербул
@AlexSerbul