78 lines
3.0 KiB
Markdown
78 lines
3.0 KiB
Markdown
# Scripts k6 — Plan de estrés IPSExtractor
|
||
|
||
Requieren [k6](https://k6.io/docs/get-started/installation/) y el stack en `http://127.0.0.1:8189`.
|
||
|
||
## Entorno de referencia (obligatorio en informes)
|
||
|
||
Las pruebas de carga del proyecto se calibran para el host:
|
||
|
||
- **Hostname:** `ubuntu` (ASUS X441UAK)
|
||
- **SO:** Ubuntu 24.04.4 LTS
|
||
- **CPU / RAM:** i5-7200U, 8 GiB
|
||
- **Docker compartido** con MLflow (~1.8 GiB), Airflow, n8n, MinIO, etc.
|
||
|
||
Antes de cada corrida, adjuntar al informe:
|
||
|
||
```bash
|
||
hostnamectl | head -5
|
||
free -h
|
||
docker stats --no-stream
|
||
curl -s -w '\ntime=%{time_total}s\n' http://127.0.0.1:8189/health/live
|
||
```
|
||
|
||
## Perfiles (`PROFILE`)
|
||
|
||
| Valor | Cuándo |
|
||
|-------|--------|
|
||
| `shared8g` (default) | Host actual con otros contenedores |
|
||
| `lab` | Solo IPSExtractor, ≥3 GiB libres |
|
||
|
||
## Variables
|
||
|
||
| Variable | Default | Descripción |
|
||
|----------|---------|-------------|
|
||
| `BASE_URL` | `http://127.0.0.1:8189` | Gateway |
|
||
| `PROFILE` | `shared8g` | Perfil de carga |
|
||
| `BOT_API_TOKEN` | `dev-token-change-me` | Bearer bot |
|
||
| `DOWNLOAD_JOB_ID` | — | Obligatorio en events |
|
||
| `WORKER_PREFIX` | `load-w` | Prefijo heartbeats |
|
||
| `PDF_B64` | (PDF mínimo) | PDF para count |
|
||
|
||
## Ejecución
|
||
|
||
```bash
|
||
k6 run -e PROFILE=shared8g -e BASE_URL=http://127.0.0.1:8189 k6_gateway_health.js
|
||
k6 run -e PROFILE=shared8g -e BOT_API_TOKEN=dev-token-change-me k6_bot_heartbeats.js
|
||
k6 run -e PROFILE=shared8g -e DOWNLOAD_JOB_ID=<id> k6_bot_events.js
|
||
k6 run -e PROFILE=shared8g k6_smoke_suite.js
|
||
# Solo si free -h muestra ≥3GiB disponibles:
|
||
k6 run -e PROFILE=shared8g k6_count_batches.js
|
||
# o Python (PDFs reales, Windows-friendly):
|
||
.\docs\plan_pruebas\scripts\st_count_01_bench.ps1 -Profile shared8g
|
||
|
||
# Latencia count-api con PDFs reales:
|
||
bash docs/plan_pruebas/scripts/measure_count_latency.sh
|
||
|
||
# Latencia LLM ST-EXT-02 (mismo schema/campos, gpt-5.4-mini):
|
||
bash docs/plan_pruebas/scripts/st_ext_02_llm_bench.sh
|
||
# Windows: .\docs\plan_pruebas\scripts\st_ext_02_llm_bench.ps1 -Limit 10
|
||
|
||
# Cola ARQ ST-EXT-01 (LLM mock, sin coste OpenAI):
|
||
# 1) Mock (otra terminal) + extraction con ASYNC_QUEUE=true y EXTRACTOR_BASE_URL→mock
|
||
bash docs/plan_pruebas/scripts/llm_mock_server.sh
|
||
# 2) Bench (shared8g ≈30 docs / lab ≈200):
|
||
bash docs/plan_pruebas/scripts/st_ext_01_arq_bench.sh
|
||
PROFILE=lab ARQ_BENCH_LIMIT=100 bash docs/plan_pruebas/scripts/st_ext_01_arq_bench.sh
|
||
# Windows:
|
||
# .\docs\plan_pruebas\scripts\llm_mock_server.ps1
|
||
# .\docs\plan_pruebas\scripts\st_ext_01_arq_bench.ps1 -Profile shared8g -Limit 30
|
||
# .\docs\plan_pruebas\scripts\st_ext_01_arq_bench.ps1 -StartMock -Limit 20
|
||
```
|
||
|
||
Modelo de capacidad 100k/mes: [`estimate_capacity.md`](estimate_capacity.md). Informe PDF: [`../InformePruebas_IPSExtractor.pdf`](../InformePruebas_IPSExtractor.pdf).
|
||
|
||
PDFs de prueba: [`../data/`](../data/) (`500000284335937.pdf`, `...940.pdf`, `...954.pdf`).
|
||
|
||
Tras el bench LLM: resultados en [`../informe/sections/13_llm_latency.tex`](../informe/sections/13_llm_latency.tex)
|
||
(CSV `informes/llm_latency_20260717.csv`). Schema: `informes/st_ext_02_schema.json`.
|