2. План занятия
Понятие высоких нагрузок
Проблемы сервисов и способы их решения
Подходы к масштабированию
Поиск и анализ узких мест
Примеры проблем и способов борьбы с ними
2
8. Нехватка ресурсов
Проблемы с сетью
Аппаратное решение:
увеличиваем пропускную способность
Сетевая карта
Более производительный маршрутизатор
Дополнительные каналы
8
9. Нехватка ресурсов
Проблемы с сетью
Программное решение:
уменьшаем трафик, увеличиваем скорость отдачи
gzip
вынос статики на отдельный домен
CDN
9
11. Нехватка ресурсов
Проблемы с диском
Основная проблема — ограничение пропускной
способности на чтение или запись
11
12. Нехватка ресурсов
Проблемы с диском
Аппаратное решение:
Увеличение емкости
Увеличение мощности (SATA → SAS или SSD)
Объединение в дисковые массивы
RAM-диски
12
22. Масштабирование ресурсов
Техники масштабирования
Партиционирование
разделение данных на логические части
Реплицирование
копирование данных
Шардирование
распределение данных по нескольким узлам
Кэширование
сохранение объекта в неизменном состоянии между запросами
22
32. Поиск узких мест
Поиск и анализ узких мест
Мониторинг
Нагрузочное тестирование
Анализ архитектуры и кода
32
33. Поиск узких мест
Примеры анализа архитектуры
Треды СУБД в ДМР
Конфиги магазинов в ДМР
Картинки и реестры на диске
Категории вопросов на Ответах
Отправка писем на Рассылках
33
34. Поиск узких мест
Нюансы оптимизации
Привычные решения могут не работать
Появляются костыли, сложный для понимания код
34
43. Резюме
Высокие нагрузки — это нехватка ресурсов
Способов борьбы два: ставим железо, включаем
голову
Техники масштабирования разные, выбираем в
зависимости от потребностей
43