Профилирование: perf/
Стенд
Требования: Docker, python3.12, Node 24, npm.
perf/stand.sh all # up, migrate, bootstrap, web-build, api, web, smoke
perf/stand.sh down # остановить бэк, фронт и Postgres
Подкоманды: up | migrate | bootstrap | api | web-build | web | smoke | reset | down | all.
reset — чистая БД: останавливает бэк, сносит volume Postgres, поднимает заново (up, migrate, bootstrap, api); фронт не трогает.
- Postgres 16 (
pg_stat_statements) наlocalhost:55432,perf/perf/perf. - Бэк (
DEBUG=true) наhttp://localhost:8000, логи и PID вperf/.run/. - Фронт (prod-сборка,
rsbuild preview) наhttp://localhost:8080;/api(включая WebSocket) проксируется на бэк. - Профилирующая сборка (
PERF_PROFILING=1,react-dom/profiling) лежит вperf/.build/profiling, обычная вperf/.build/prod. Для запуска preview с профилирующей сборкой:PERF_PROFILING=1 perf/stand.sh web(после остановки обычногоweb). - Админ:
admin/admin. - Переменные:
PERF_API,PERF_WEB,PERF_DB_DSN. - Зависимости Python ставятся в
perf/.venv(api/requirements-dev.txt+perf/requirements.txt). - npm берёт пакеты с
https://registry.npmjs.org(npm_config_registry),web/.npmrcне нужен.
Данные
perf/stand.sh reset # пустая БД (генератор на непустой БД откажется работать)
cd perf && .venv/bin/python -m perfkit.gen.run --scale 1 # ~20-40 мин, пишет results/manifest-s1.json
cd perf && .venv/bin/python -m perfkit.gen.verify --scale 1 # должен напечатать VERIFY OK
Генератор работает через HTTP-API под admin (WebSocket — только для программ и проектов FORM_4,
у них нет HTTP-ручки). Пользователи: perf_rf, perf_rf_coauthor (одна РФ, роль 3) и perf_dfip
(роль 2, все оргединицы), пароль perf; в манифесте они под ключами rf, rf_coauthor, dfip.
Числа плана и их обоснование — в perf/perfkit/gen/plan.py.