«От cms к highload: работа с backend» Алексей Сазанов, Александр...
DESCRIPTION
- анализ производительности ORM; - особенности работы с DB при нагрузке; - Sphinx как дополнение к MySQL; - сессия в ASP.NEТ: зачем нужен кастомный провайдер.TRANSCRIPT
От CMS к Highload
Работа с backend
CMS vs Highload
CMS• Шаблоны• Скорость разработки• Простота задач• Простота решений
Highload• Большой объем трафика• Большой объем
информации• Уникальность решений• Скорость работы
С чего все начиналось…
ORM
• Devart• Entity Framework• CustomORM• ADO *
Тест производительности
25 50 100 150 250 500 10000
100,000
200,000
300,000
400,000
500,000
600,000
700,000
devartentitycustomado
Количество запросов
ms
25 50 100 150 250 500 10000
2,000
4,000
6,000
8,000
10,000
12,000
14,000
entitycustomado
Количество запросов
ms
Время, ms
devart
entity
custom
ado
0 100 200 300 400 500 600
519.07
12.09
3.42
0.90
Время, ms
entity
custom
ado
0 2 4 6 8 10 12 14
12.09
3.42
0.90
Ресурсы
0 0.904142857142857 3.42366666666667 12.0885238095238 519.0721428571430
10
20
30
40
50
60
70
80
90
devartentitycustomado
РезультатWeb сервер
DB сервер
до после0
1020304050607080
CPU
CPU
до после0
20
40
60
80
CPU
CPU
DB
• Рефакторинг «тяжелых» запросов• «Чистка» количества запросов• Кэширование• Репликация master-slave
Результат
до после0
10
20
30
40
50
60
70
80
90
Web Requests/sec
На 5 000 000 просмотров в день 750 000 000 запросов к DB в день 400 000 запросов к DB в минуту
Полнотекстовый поиск =MySQL + Sphinx
• Высокая скорость индексации• Высокая скорость поиска• Масштабируемость• Полнотекстовый поиск• Поддержка стоп-слов, синонимов, морфологии и т.д.• Родная поддержка MySQL• API + SphinxQL
Сессия
Итог