Миф об очень сложном HighloadАлександр Горный, CIO Mail.Ru Group
Коротко об авторе
• Занимался highload, когда это ещё не было модно
• Разработал архитектуру дюжины крупных и очень крупных проектов
• Помог вырасти десяткам сильных разработчиков
Highload – популярный и дорогой buzzword• На конференции Highload’2015 было больше 2000 участников
• На HH прямо сейчас открыты 802 вакансии про высокие нагрузки
• Стоит такая вакансия на 25% дороже “обычной”
В чём суть highload?• Необычные методы
• Необычные инструменты
• Необычные специалисты
Для необычных задач!
Для обычных задач подходят обычные методы, инструменты и
специалисты
Как измерить обычность?RPS Latency
Сколько вешать в граммах?
RPS на примере 220 Вольт• Сотни миллионов долларов в год выручка
• 600 000 хитов в день
• RPS = 600 000 / 86 400 * 3 * 2 = 40
Latency на примере поисковиков
Яндекс Google
Время отдачи страницы 180 ms 64 ms
Полное время открытия страницы 1050 ms 800 ms
40 RPS – масштаб крупнейшего e-commerce
200ms latency – уровень качества Яндекса
На что расходуются ms?• База данных
• Вычисления на бэкенде
• Веб-сервера и ОС
• Сеть
• Работа браузера, подгрузка картинок и JS
База данных – всего лишь mysql и индексы• 50 000 строк, 9 полей – можно даже индексы не делать
(~40 ms)
• 50 000 строк, 15 числовых, 10 строчных, 2 текстовых поля – запрос по индексу ~15 ms
• 1 000 000 строк 3 числовых, 3 строчных, 1 текстовое поле – запрос по индексу ~15 ms
• JOIN этих таблиц по индексу – ~30 ms
Бекенд• Обработка одного тома Войны и Мира – 25 ms
• Математическая обработка 10000 чисел – 4 ms
• Шаблонизация (Perl + Template::Alloy) – 35 ms
На что расходуются ms• База банных – 45 ms
• Вычисления на бэкенде – 60 ms
• Веб-сервера и ОС – 160 ms (!!)
На сервере у нас 265 ms – мы ближе к Яндексу, чем Яндекс к Google
265мс время отклика, какой это RPS?
На что расходуются ms• Сеть
• Работа браузера
• Картинки и JS-ки
Когда нужен серверный Highload?• Очень-очень-очень много хитов
• Очень много хитрых хитов
• Сервис для сервиса
• Плохой партнер
Кому нужен Highload?• Архитекторам/тимлидам Mail.Ru, Яндекса, Авито, Badoo
• CTO проектов с предыдущего слайда
Почему же сайты тормозят?• Плохой хостинг или плохая сеть
• Плохой framework
• Отсутствие нужных индексов или выгрузка базы целиком
• Плохой фронтенд
Анти Highload++• Nginx
• Репликация
• Кэширование и предрасчет
Спасибо за внимание!
Да здравствуют фронтенд и здравый смысл!