Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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

481 views

Published on

Highload, высокие нагрузки — популярный и дорогой buzzword, ради него проводятся огромные конференции, разработчики указывают его в резюме, претендуя на большие деньги, а работодатели в вакансиях, обещая более интересную работу.

В докладе я показываю, что современная производительность серверов позволяет не думать о нагрузке для 95% "highload" проектов, знания из конференций не нужны в реальной жизни. Для разработки почти любого, даже очень крупного сайта достаточно PHP+MySQL, здравого смысла и совсем-совсем базовых правил, не обсуждающихся даже на Highload Junior.

План выступления.

1. Ликбез о производительности. RPS, latency — что это значит, как считается, к каким числам надо стремиться? Из чего складывается время отклика? База данных, фронтенд, верстка или мобильное приложение.

2. Замеры достижимой производительности теплого LAMP-ового сервера. Бенчмарк без индексов в базе.
Бенчмарк с индексами в базе. Сравнение с требуемыми цифрами.

3. Перечисление возможных детских ошибок, которые могут испортить эти результаты в жизни. Все эти ошибки объясняются не в академии Highload или институте Highload Junior, а в школе.
Примеры ошибок:
- выгрузка всей базы, а не нужных 20 элементов;
- паразитный вызов тяжелой страницы;
- плохой хостинг;
- чужие тормозные элементы;
- неадекватный объём html/js-кода.

4. Отсутствие детских ошибок позволяет эффективно программировать 90% крупных сайтов, 3-4 приема превратят 90% в 95%.
- nginx;
- репликация;
- кэширование и предрасчет.
Этому, кстати, тоже почти не учат на highload junior, но этому я вас уже научил.

5. Примеры продуктов, в которых на самом деле нужен highload?
- Очень-очень-очень много хитов, дешевле highload, чем новое железо.
- Очень много очен�

Published in: Engineering
  • Be the first to comment

  • Be the first to like this

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

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

×