Содержание
- 2. Задача: оптимизация приложения вконтакте
- 3. 30 тыс пользователей до 9 секунд на запрос 5 серверов надо опустить время ответа до 500
- 4. Более 2-х млн пользователей 25 мс на запрос 14 серверов 40K RPM и 20 млн записей
- 5. Ежедневная смена требований Экспоненциальный рост нагрузки Поровну записи и чтения Сделать быстро, дешево и приемлемо С
- 6. Что оказалось важным в нашем случае
- 7. Грамотный менеджер «Щасспрошу» завалит проект Персонал
- 8. Системный администратор. Получше, чем «aptitude-джан» Персонал
- 9. Наша команда злых марсиан! http://evilmartians.ru/ Персонал
- 10. Волшебных гномиков нет.
- 11. Нет их даже в MongoDB и memcached
- 12. pgpool — master-master медленный memcached — нечего кешировать Сразу выкинули
- 13. Ruby on Rails — нужна гибкость PostgreSQL — часто меняется схема RabbitMQ — задержка записи внешний
- 14. Что мы делали
- 15. Без него никуда Догадки не работают newrelic.com Фоновые задачи очень важны Профилирование
- 16. Место на дисках Упавшие серверы Длины очередей Ночной дежурный (?) Мониторинг
- 17. Нужны реляционные выборки Часто меняются критерии PostgreSQL быстр и удобен Индексы — основной дисковый IO SQL
- 18. Много данных рядом — плохо Нам повезло с логикой выборок Шардинг: user_id % 100 Надо планировать
- 19. Меньше всего проблем Zero-downtime deploy с unicorn-ом Плохая поддержка шардинга Необходимость RabbitMQ Ruby on Rails
- 20. Самая быстрая часть проекта Оказался индикатором состояния Мучительное восстановление RabbitMQ
- 22. Скачать презентацию