Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
SlideShare a Scribd company logo

1

Миф об очень сложном Highload
Александр Горный, CIO Mail.Ru Group

2

Коротко об авторе
• Занимался highload, когда это ещё не
было модно
• Разработал архитектуру дюжины
крупных и очень крупных проектов
• Помог вырасти десяткам сильных
разработчиков

3

Highload – популярный и дорогой buzzword
• На конференции Highload’2015 было больше 2000 участников
• На HH прямо сейчас открыты 802 вакансии про высокие нагрузки
• Стоит такая вакансия на 25% дороже “обычной”

4

В чём суть highload?
• Необычные методы
• Необычные инструменты
• Необычные специалисты
Для необычных задач!

5

Для обычных задач подходят обычные
методы, инструменты и специалисты

6

Как измерить обычность?
RPS Latency

7

Сколько вешать в граммах?

8

RPS на примере 220 Вольт
• Сотни миллионов долларов в год выручка
• 600 000 хитов в день
• RPS = 600 000 / 86 400 * 3 * 2 = 40

9

Latency на примере поисковиков
Яндекс Google
Время отдачи
страницы
180 ms 64 ms
Полное время
открытия страницы
1050 ms 800 ms

10

40 RPS – масштаб крупнейшего e-commerce
200ms latency – уровень качества Яндекса

11

На что расходуются ms?
• База данных
• Вычисления на бэкенде
• Веб-сервера и ОС
• Сеть
• Работа браузера, подгрузка картинок и JS

12

База данных – всего лишь mysql и индексы
• 50 000 строк, 9 полей – можно даже индексы не
делать (~40 ms) 
• 50 000 строк, 15 числовых, 10 строчных, 2
текстовых поля – запрос по индексу ~15 ms
• 1 000 000 строк 3 числовых, 3 строчных, 1 текстовое
поле – запрос по индексу ~15 ms
• JOIN этих таблиц по индексу – ~30 ms

13

Бекенд
• Обработка одного тома Войны и Мира – 25 ms
• Математическая обработка 10000 чисел – 4 ms
• Шаблонизация (Perl + Template::Alloy) – 35 ms

14

На что расходуются ms
• База банных – 45 ms
• Вычисления на бэкенде – 60 ms
• Веб-сервера и ОС – 160 ms (!!)
На сервере у нас 265 ms – мы ближе к Яндексу, чем Яндекс к Google

15

265мс время отклика, какой это RPS?

16

На что расходуются ms
• Сеть
• Работа браузера
• Картинки и JS-ки

17

Когда нужен серверный Highload?
• Очень-очень-очень много хитов
• Очень много хитрых хитов
• Сервис для сервиса
• Плохой партнер

18

Кому нужен Highload?
• Архитекторам/тимлидам Mail.Ru, Яндекса, Авито, Badoo
• CTO проектов с предыдущего слайда

19

Почему же сайты тормозят?
• Плохой хостинг или плохая сеть
• Плохой framework
• Отсутствие нужных индексов или выгрузка базы целиком
• Плохой фронтенд

20

Анти Highload++
• Nginx
• Репликация
• Кэширование и предрасчет

21

Спасибо за внимание!
Да здравствуют фронтенд и здравый
смысл! 

More Related Content

Миф об очень сложном Highload / Александр Горный (Mail.Ru Group)

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