## Итог нагрузочного тестирования IFT (июль 2026) ### Профили | Прогон | Конфиг | Результат | |--------|--------|-----------| | Smoke | полный auth path | OK | | Full | onboard + browse/CRUD, мягкий thinktime | OK (~112 concurrent, mean ~62 ms, 0% ошибок) | | Stress aggressive | без thinktime, maxusers 5000 | BOUNDARY_HIT, клин SSH/vmmem | | Hold ×1 | thinktime 1s, ladder 0.2→0.035 | GREEN до ~10 VU/s; OVER с ~20 VU/s (timeouts) | | Hold ×2 | то же | GREEN до ~10 VU/s; на 20 VU/s мягче; overall UNDER_THRESHOLD | | Hold ×3 | то же | connect GREEN до 0.035; overall BOUNDARY_HIT из‑за **HTTP 429** | Логи восстановления: `\\192.168.1.116\eventhub-cursor\ift-to-dev\wsl-recover-20260715-152148\` ### Выводы 1. **Умеренная нагрузка (≤~10 VU/s hot-path, thinktime≥1s)** на IFT устойчива. 2. **×1/×2 упираются в connect-слой** (TLS/Traefik/ОС/WSL): timeouts, hung sessions, **vmmem ~8 ГБ / высокий CPU**, SSH banner hang. 3. **×3 сдвигает узкое место**: connect держится, появляется **429 + Mnesia overloaded + archive_manager timeout**. 4. IFT крутится в **WSL2 на Windows (HOME-PC)** — деградация гостя = `vmmem` на хосте; restore через WSL SSH часто мёртв, нужен Windows SSH / `wsl --shutdown`. ### Рекомендации (по приоритету) **P0 — стабилизация стенда** - После stress: `restart-wsl-and-collect-logs.ps1` / `wsl --shutdown`, затем restore. - Не гонять hold ниже interarrival **0.1** без лимита maxusers и без наблюдения. - Починить restore при `update out of sequence` (retry/force update сервисов). **P1 — приложение / данные (причина 429 и падений под ×3)** - Разобрать **HTTP 429**: лимитер (чей), пороги, нужен ли отдельный bypass для loadtest. - **`archive_manager` timeout** на `get_node("YYYYMM")` / `peer:start_it` — таймауты, пул peer-нод, не блокировать hot-path. - **Mnesia overloaded** — размер dump_log, нагрузка записи, рассмотреть Postgres для hot path / меньше sync writes на loadtest. - Traefik: Docker API client **1.24 → ≥1.44** (сейчас provider docker в постоянной ERR). **P2 — capacity / процесс** - Рабочий потолок для планирования: **~10 VU/s** hot-path на текущем железе; выше — только с тюнингом. - Hold/stress только с `maxusers≤300`, thinktime≥1s; aggressive без лимита запретить. - Мониторинг во время прогона: docker stats + Mnesia warnings + очередь archive. - Отдельная задача: сравнить hold на «чистом» Linux-хосте без WSL2 (если появится).