Document namespace stream bench and completion after consumer drain
This commit is contained in:
1 parent
a877ba8a73
commit
e78eaf45f7
2 files changed
+36
-2
No files matched your search
@@ -34,6 +34,12 @@ python3 tests/stream_netns/run.py --duration 120 --faults
|
||||
python3 tests/stream_netns/run.py --publisher n05 --tcp --faults
|
||||
```
|
||||
|
||||
Чтобы требовать именно TCP/STCP, без возможности выбрать UDP:
|
||||
|
||||
```sh
|
||||
python3 tests/stream_netns/run.py --publisher n05 --tcp-only --duration 20
|
||||
```
|
||||
|
||||
Ту же проверку запускает отдельная ручная цель:
|
||||
|
||||
```sh
|
||||
@@ -82,12 +88,14 @@ One-way latency измеряется по общему CLOCK_MONOTONIC ядра
|
||||
|
||||
По умолчанию результаты находятся в новом `tests/stream_netns/runs/<date-time>/`:
|
||||
|
||||
- `result.json` — PASS/FAIL, ошибка и фазы; `host-check.json` — сравнение основной сети, с исключением естественно уменьшающихся DHCP lifetime/cache timers.
|
||||
- `result.json` — PASS/FAIL, ошибка, фазы, транспорт, bitrate, наблюдаемые обороты timestamp и результат сравнения основной сети; `host-check.json` — снимок сравнения, с исключением естественно уменьшающихся DHCP lifetime/cache timers.
|
||||
- `calibration.json`, `topology.json`, `namespaces.json` — измерения, параметры, PID и inode namespace.
|
||||
- `samples.jsonl`, `final-stats.json`, `summary.csv` — доставленные записи, GAP, p50/p95/p99/max latency, буферы, пробы, миграции и пути каждого субпотока.
|
||||
- `samples.jsonl`, `final-stats.json`, `last-stats.json`, `summary.csv` — доставленные записи, GAP, p50/p95/p99/max latency, буферы, пробы, миграции, source timestamp, rates/lag/stops и пути каждого субпотока. Последний снимок сохраняется также при FAIL.
|
||||
- `network.jsonl`, `network-initial.json`, `network-final.json`, `g_*.nft` — точные команды, ошибки, маршруты, tc counters и правила NAT.
|
||||
- `nXX/utun.log`, `stderr.log`, `rpc.jsonl`, `node.conf`, `db/` — диагностика и состояние каждого процесса. Конфиги содержат **тестовые** приватные ключи.
|
||||
|
||||
Категория `stream=debug`, JOIN/Merkle/BGP/connection — `info`; ошибки остальных категорий сохраняются. Для диагностики очередей можно запросить RPC `{"id":"1","op":"stats","loads":"1"}`; обычные снимки не опрашивают отсутствующие peer-load записи, чтобы не засорять лог. Stdout агента зарезервирован для JSONL.
|
||||
|
||||
Ctrl+C и нормальное завершение закрывают процессы и namespace. PID namespace с `--kill-child` также ограничивает время жизни процессов при аварии launcher; namespace не закрепляются mount-именами на хосте. Файлы результатов сохраняются для анализа.
|
||||
|
||||
Короткий TCP-only прогон выявил остановку оптимизатора при END первого поставщика, до дочитывания потребителем FEC-пачки. Для этого случая добавлена регрессия в `test_stream_service`: END устанавливает подписанную границу, автоматические пробы и восстановление продолжаются до прохождения consumer cursor за эту границу. Стенд проверяет завершение у всех подписчиков, а не наличие END в одном сетевом handle.
|
||||
Reference in new issue
Block a user