Жизненный цикл задачи
На странице задачи и в списке задач доступны операции жизненного цикла сценария:
| Операция | Назначение |
|---|---|
| Создать задачу | Открывает конструктор и позволяет собрать 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 и предотвращает искусственные потери в конце измерения.
Если у клиентского потока нет соответствующей серверной стороны в этой задаче, Пересвет-СТ не может бесконечно ждать ответов внешнего узла. После запуска закрытия с настроенной скоростью система ожидает ответы до 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-туннели закрываются с заданной скоростью открытия туннелей.