![Page 2: 1000 запросов в секунду на rails (Макс Лапшин)](https://reader034.vdocuments.us/reader034/viewer/2022042518/5594aa2c1a28abbf018b458c/html5/thumbnails/2.jpg)
:Задача оптимизация приложения
вконтакте оптимизация приложения
вконтакте
![Page 3: 1000 запросов в секунду на rails (Макс Лапшин)](https://reader034.vdocuments.us/reader034/viewer/2022042518/5594aa2c1a28abbf018b458c/html5/thumbnails/3.jpg)
• 30 тыс пользователей• 9 до секунд на запрос• 5 серверов• 500 надо опустить время ответа домс
Вводные
![Page 4: 1000 запросов в секунду на rails (Макс Лапшин)](https://reader034.vdocuments.us/reader034/viewer/2022042518/5594aa2c1a28abbf018b458c/html5/thumbnails/4.jpg)
• 2- Более х млн пользователей• 25 мс на запрос• 14 серверов• 40K RPM 20 и млн записей в сутки
Результаты
![Page 5: 1000 запросов в секунду на rails (Макс Лапшин)](https://reader034.vdocuments.us/reader034/viewer/2022042518/5594aa2c1a28abbf018b458c/html5/thumbnails/5.jpg)
• Ежедневная смена требований• Экспоненциальный рост нагрузки• Поровну записи и чтения• , Сделать быстро дешево иприемлемо
С чем столкнулись
![Page 6: 1000 запросов в секунду на rails (Макс Лапшин)](https://reader034.vdocuments.us/reader034/viewer/2022042518/5594aa2c1a28abbf018b458c/html5/thumbnails/6.jpg)
Что оказалось важным в
нашем случае нашем случае нашем случае
![Page 7: 1000 запросов в секунду на rails (Макс Лапшин)](https://reader034.vdocuments.us/reader034/viewer/2022042518/5594aa2c1a28abbf018b458c/html5/thumbnails/7.jpg)
Грамотный менеджер« » Щасспрошу завалит проект
Персонал
![Page 8: 1000 запросов в секунду на rails (Макс Лапшин)](https://reader034.vdocuments.us/reader034/viewer/2022042518/5594aa2c1a28abbf018b458c/html5/thumbnails/8.jpg)
. Системный администратор, «aptitude- »Получше чем джан
Персонал
![Page 10: 1000 запросов в секунду на rails (Макс Лапшин)](https://reader034.vdocuments.us/reader034/viewer/2022042518/5594aa2c1a28abbf018b458c/html5/thumbnails/10.jpg)
Волшебных гномиков.нет
![Page 11: 1000 запросов в секунду на rails (Макс Лапшин)](https://reader034.vdocuments.us/reader034/viewer/2022042518/5594aa2c1a28abbf018b458c/html5/thumbnails/11.jpg)
Нет их даже вMongoDB memcachedи
![Page 12: 1000 запросов в секунду на rails (Макс Лапшин)](https://reader034.vdocuments.us/reader034/viewer/2022042518/5594aa2c1a28abbf018b458c/html5/thumbnails/12.jpg)
• pgpool — master-master медленный• memcached — нечего кешировать
Сразу выкинули
![Page 13: 1000 запросов в секунду на rails (Макс Лапшин)](https://reader034.vdocuments.us/reader034/viewer/2022042518/5594aa2c1a28abbf018b458c/html5/thumbnails/13.jpg)
• Ruby on Rails — нужна гибкость• PostgreSQL — часто меняется схема• RabbitMQ — задержка записи• внешний инструментарий
Оставили
![Page 14: 1000 запросов в секунду на rails (Макс Лапшин)](https://reader034.vdocuments.us/reader034/viewer/2022042518/5594aa2c1a28abbf018b458c/html5/thumbnails/14.jpg)
Что мы делали
![Page 15: 1000 запросов в секунду на rails (Макс Лапшин)](https://reader034.vdocuments.us/reader034/viewer/2022042518/5594aa2c1a28abbf018b458c/html5/thumbnails/15.jpg)
• Без него никуда• Догадки не работают• newrelic.com
• Фоновые задачи очень важны
Профилирование
![Page 16: 1000 запросов в секунду на rails (Макс Лапшин)](https://reader034.vdocuments.us/reader034/viewer/2022042518/5594aa2c1a28abbf018b458c/html5/thumbnails/16.jpg)
• Место на дисках• Упавшие серверы• Длины очередей• (?)Ночной дежурный
Мониторинг
![Page 17: 1000 запросов в секунду на rails (Макс Лапшин)](https://reader034.vdocuments.us/reader034/viewer/2022042518/5594aa2c1a28abbf018b458c/html5/thumbnails/17.jpg)
• Нужны реляционные выборки• Часто меняются критерии• PostgreSQL быстр и удобен• — IOИндексы основной дисковый
SQL база
![Page 18: 1000 запросов в секунду на rails (Макс Лапшин)](https://reader034.vdocuments.us/reader034/viewer/2022042518/5594aa2c1a28abbf018b458c/html5/thumbnails/18.jpg)
• — Много данных рядом плохо• Нам повезло с логикой выборок• : user_id % 100Шардинг• Надо планировать заранее
Шардинг
![Page 19: 1000 запросов в секунду на rails (Макс Лапшин)](https://reader034.vdocuments.us/reader034/viewer/2022042518/5594aa2c1a28abbf018b458c/html5/thumbnails/19.jpg)
• Меньше всего проблем• Zero-downtime deploy unicorn-с ом• Плохая поддержка шардинга• RabbitMQНеобходимость
Ruby on Rails
![Page 20: 1000 запросов в секунду на rails (Макс Лапшин)](https://reader034.vdocuments.us/reader034/viewer/2022042518/5594aa2c1a28abbf018b458c/html5/thumbnails/20.jpg)
• Самая быстрая часть проекта• Оказался индикатором состояния• Мучительное восстановление
RabbitMQ
![Page 21: 1000 запросов в секунду на rails (Макс Лапшин)](https://reader034.vdocuments.us/reader034/viewer/2022042518/5594aa2c1a28abbf018b458c/html5/thumbnails/21.jpg)
• Rails do scale
• — Масштабирование вопрос предметной области
• -У вас всё будет по другому
Выводы