В рамках развития продукта MyTarget в компании VK был запущен единый рекламный кабинет. Это привело к серьезному росту нагрузки на backend-компонент, который отвечает за подбор рекламы, — баннерный демон. На развитие сервиса также повлияли и аппаратные ограничения, как в части пополнения серверного парка, так и в части размещения новых аппаратных мощностей.
Перед баннерным демоном стоит ряд оптимизационных задач, решение которых позволяет не только сдерживать нагрузку, но и в полной мере с запасом утилизировать аппаратные ресурсы.
В рамках доклада будут разобраны подходы к решению нескольких блоков задач по оптимизации баннерного демона:
* ускорение процесса запуска демона во время раскладки новых версий;
* определение групп трафика, отвечающих разным продуктовым требованиям;
* вынесение построения индекса по соцдем-таргетингам в отдельный сервис;
* реализация поддержки кэширования запросов.
Решение данных блоков задач позволило выдержать рост активных кампаний и сохранить показатели установленными в SLA, снизить потребление памяти на северах, а также уменьшить среднюю загрузку CPU на для высоконагруженных потоков обработки запросов.