Миф об очень сложном Highload / Александр Горный (Mail.Ru Group)
•Download as PPTX, PDF•
0 likes•717 views
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, чем новое железо.
- Очень много очен�
1 of 21
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
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?
• Необычные методы
• Необычные инструменты
• Необычные специалисты
Для необычных задач!
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
17. Когда нужен серверный Highload?
• Очень-очень-очень много хитов
• Очень много хитрых хитов
• Сервис для сервиса
• Плохой партнер
18. Кому нужен Highload?
• Архитекторам/тимлидам Mail.Ru, Яндекса, Авито, Badoo
• CTO проектов с предыдущего слайда
19. Почему же сайты тормозят?
• Плохой хостинг или плохая сеть
• Плохой framework
• Отсутствие нужных индексов или выгрузка базы целиком
• Плохой фронтенд