Полночи убил на то, чтобы ускорить обработку новостей.
Полночи убил на то, чтобы ускорить обработку новостей. Напоминаю: в прошлой сборке ориентиром был p80 ≤ 7 секунд. То есть 80% новостей должны были пройти весь путь от получения до публикации не дольше чем за 7 секунд. Недавно поставил новую цель: p95 ≤ 3 секунды. Требование стало строже сразу в двух направлениях: меньше времени и больше новостей, которые должны в него уложиться. Промежуточные результаты сквозного теста: — Среднее время обработки и публикации — 1673 мс(1,67 сек) — p95 — 2300 мс (2,3 сек) — 34 из 35 успешно опубликованных новостей уложились в 3 секунды Раньше среднее время составляло 4,6 секунды. Теперь — 1,67. Это сокращение задержки на 64%, или ускорение примерно в 2,75 раза. Есть важный момент: это замер от получения новости обработчиком до публикации. Задержку обнаружения новости (то есть парсером) он не включает — с источниками ещё предстоит 80% всей работы. Чтобы ускориться пришлось убрать любые лишние сетевые связанности, изменить некоторые модели, пересмотреть множество подходов и вырезать лишнее Стоимость обработки новости повысилась, но вместе с ней так же повысилась скорость. Сейчас обработчик работает на пределе своих возможностей и 7 из 9 операций выполняются менее чем за 10мс (миллисекунд) Пока что новая система будет работать локально. В следующей версии перенесу ее на прод и буду думать над тем, как прикрутить к системе модуль покупки/продажи.