Разбор production-кейса на The New Stack (плюс видео): ML-приложение для биржевой торговли держало нагрузку в тестах и посыпалось под реальной конкурентной нагрузкой. Виноватой считали модель, а тормозило чтение признаков.
Около 740 000 операций в секунду — и P99 (худший ответ из сотни) подскакивает до 3 секунд, притом что средние задержки выглядят здоровыми. Каждый вызов модели делал всего несколько чтений признаков, но они вставали в очередь за записями. На высокой конкурентной записи начинается борьба за блокировки, и ретраи, раздутые кэши и тюнинг пула соединений уже не спасают.
Хвостовая задержка не баг, который можно починить, а свойство вашей архитектуры.
Гонять нагрузочные тесты стоит по хвосту, а не по среднему: если P99 растёт вместе с конкурентной записью, смотреть надо на слой хранения признаков, а не на модель.
