Третий прогон впервые дошёл до модели: семь итераций агентного цикла, 63 545 входных токенов. И три результата — два таймаута и одно переполнение.
Прежде чем делать выводы о модели, я посмотрел на условия. Свободной памяти на узле — ноль, своп 10,3 ГБ. Модель занимает 24 из 36 гигабайт, сверху агентный каркас, Docker и мои рабочие приложения. В таких условиях таймаут неотличим от ожидания диска.
А потом нашёл дефект в собственном инструменте: срок задачи считался количеством выполненных sleep 1. Под нагрузкой, которую создаёт сам прогон, заявленные 45 минут растянулись до 111. То есть измеритель производительности сам стал её жертвой.
Все временные числа того прогона пришлось выбросить — сравнивать не с чем. Правило вышло короткое: время меряется часами, а не количеством итераций цикла.