Перейти к основному содержимому

Жизненный цикл задачи

На странице задачи и в списке задач доступны операции жизненного цикла сценария:

ОперацияНазначение
Создать задачуОткрывает конструктор и позволяет собрать Data Plane, Control Plane и Access Plane конфигурацию
Запустить задачуПередает конфигурацию агентам и запускает выбранные сценарии
Остановить задачуЗавершает активный запуск и переводит задачу в состояние остановки
Открыть задачуПоказывает конфигурацию, схему, метрики, события и логи
Удалить задачуУдаляет запись задачи из списка
Запросить дампЗапрашивает захваченный трафик (PCAP) с выбранного агента, если включен захват трафика
Экспортировать отчет (PDF / CSV / HTML)Формирует отчет в формате PDF, HTML или CSV по выбранной задаче — см. Экспорт отчетов и импорт задач

Перед запуском задачи проверьте, что все используемые агенты доступны, лицензия активна, сети и интерфейсы выбраны корректно, а связанные объекты библиотеки синхронизированы с агентами.

Двухфазный старт задачи

При запуске сложной задачи агенты проходят фазы готовности, прежде чем начнётся пользовательская нагрузка:

ФазаСмыслЧто поднимается
agent-readyАгент принял конфигурацию и готовПроцесс ядра, интерфейсы
measurement-readyИзмерительная/служебная плоскость готоваAccess-сессии, CP-соседства, туннели
start-loadСнимается блокировка нагрузки (warmup unlock)Трафик Data Plane-плагинов

Отдельного поля «прогрев / warmup» в конструкторе нет — warmup встроен в двухфазный запуск. На вкладке Метрики до старта показывается «Метрики появятся после запуска задачи»; сразу после перехода в RUNNING может быть состояние «Подготавливаем метрики», пока не придут первые клиентские точки.

Если задача «зависла» в подготовке, смотрите Логи агентов и события Access/Control Plane: типичные причины — нет DHCP/PPPoE ответа, не согласован BGP, не синхронизированы PTI/PCAP/C2 файлы.

Обычная остановка задачи

Обычная остановка запускается по нажатию Остановить задачу или по достижении заданной длительности. Задача сразу переходит в состояние Остановка, а на графиках появляется аннотация task_stop. Эта аннотация отмечает начало остановки, а не момент, когда уже освобождены все ресурсы.

Дальше система завершает задачу поэтапно:

ЭтапЧто происходит
1. Закрытие входа для новой нагрузкиПлагины перестают создавать новые сессии и новые операции. Stateless-генерация прекращается, уже подготовленные к передаче пакеты и очереди обрабатываются.
2. Завершение вложенного stateful-трафикаАктивные TCP-соединения завершают обмен и закрываются; для TLS выполняется согласованное завершение защищённой сессии, когда его поддерживает вторая сторона. Stateful UDP освобождает состояние потока после обработки оставшихся очередей.
3. Закрытие зависимых сессий и туннелейСогласуемые сетевые туннели, например IPsec, остаются активными, пока через них закрываются внутренние соединения. Затем выполняется IKE/Child SA DELETE. VLAN, GRE и IP-IP не имеют отдельного согласуемого завершения и прекращают работу вместе с трафиком.
4. Финальные измеренияКлиентские и серверные агенты досылают итоговые метрики и согласуют финальный снимок статистики.
5. ЗавершениеПосле освобождения ресурсов задача получает состояние Завершена, а task_finish ставится на последнюю секунду метрик.

Инициация закрытия TCP/TLS-соединений ограничивается той же скоростью, которая была задана для их открытия. Например, при CPS = 3 000 000 система начинает закрытие не более 3 000 000 соединений в секунду. Ответные FIN/ACK и другие пакеты второй стороны этим ограничителем не задерживаются.

Для IPsec действует такое же правило: IKE/Child SA закрываются со скоростью открытия туннелей. Туннели начинают закрываться только после завершения внутреннего TCP/TLS/UDP-трафика на всех задействованных агентах. Это сохраняет рабочий защищённый путь для последних FIN/ACK и предотвращает искусственные потери в конце измерения.

One-arm-сценарии

Если у клиентского потока нет соответствующей серверной стороны в этой задаче, Пересвет-СТ не может бесконечно ждать ответов внешнего узла. После запуска закрытия с настроенной скоростью система ожидает ответы до 10 секунд. Если внешний узел не завершил обмен, пользователь получает предупреждение, после чего задача немедленно освобождает локальные ресурсы и завершается.

Принудительная остановка

Пункт Принудительно остановить задачу доступен в раскрывающейся части кнопки остановки, в том числе когда обычная остановка уже выполняется. Он предназначен для ситуации, когда задача или внешний peer не отвечает и ждать корректного завершения нельзя.

Принудительная остановка немедленно прекращает процессы генерации и освобождает локальные ресурсы без ожидания:

  • завершения TCP/TLS/UDP-обмена;
  • FIN/ACK, завершения TLS и других ответов внешнего узла;
  • IKE/Child SA DELETE;
  • согласованного финального снимка метрик между агентами.

Собранные до этого момента метрики сохраняются, но последняя секунда и сравнение переданных/принятых данных могут быть неполными. Поэтому для измерительного запуска используйте обычную остановку, а принудительную — как аварийный выход.

Приоритет запуска, балансировка и закрытие

Для сценария с сетевым туннелем действует прямой порядок при запуске и обратный порядок при остановке:

Запуск:    сеть и удалённая сторона → готовый туннель → внутренний поток/сессия
Остановка: новые потоки запрещены → внутренние сессии закрыты → туннель закрыт → финальные метрики

Трафик передаётся только через уже готовые туннели. По мере открытия новых IPsec-туннелей они добавляются в доступный пул:

  • Stateless-пакеты распределяются по готовым туннелям по кругу максимально равномерно.
  • Stateful TCP, TLS и UDP-поток при создании закрепляется за одним готовым туннелем. Последующие пакеты этого потока используют тот же туннель, чтобы сохранить порядок и состояние сессии.
  • Новый туннель участвует в распределении последующих пакетов и новых потоков; уже активные stateful-потоки между туннелями не переносятся.

Например, настроены 1 000 IPsec-туннелей, скорость открытия — 100 туннелей/с, а stateless-нагрузка — 1 000 000 пакетов/с. Когда готовы первые 100 туннелей, вся нагрузка равномерно распределяется между ними — примерно по 10 000 пакетов/с на туннель. Когда готовы 200, последующие пакеты распределяются примерно по 5 000 пакетов/с. После готовности всех 1 000 получается примерно по 1 000 пакетов/с на туннель.

При остановке порядок разворачивается: сначала прекращается создание новых потоков, затем существующие stateful-сессии закрываются с заданной CPS, и только после этого IPsec-туннели закрываются с заданной скоростью открытия туннелей.