Операционная панель торговли на биржевых данных: отдача ускорена до 14–34 мс

Ссылка на работу
Задача. Инфраструктура финансовых данных Мосбиржи: Операционная панель и монитор инструментов на модифицированных графиках TradingView с индивидуальными индикаторами заказчика. Операционную панель держат открытой часами, данные обновляются постоянно. Сервер не справлялся: средняя нагрузка доходила до 7, отдача занимала секунды, картина отставала от рынка. Решение. Разобрал, откуда берётся нагрузка: каждый запрос заново шёл к источнику, а параллельные обращения дублировали одну и ту же работу. Ввёл общий кэш ответа с коротким временем жизни и блокировку: обновление выполняет один процесс, остальные получают готовый результат. Тяжёлые выборки вынес в фоновое обновление по расписанию. Результат. Средняя нагрузка упала с 7 до 0,02, отдача данных — 14–34 мс. Операционная панель перестала отставать от рынка, сервер освободился под другие задачи.