AITM ofrece una vista de supervisión de recursos en vivo para ver qué se está ejecutando, qué está esperando y qué está consumiendo recursos en cada momento; útil para diagnosticar por qué una Task está atascada esperando, o para detectar presión de recursos antes de una caída.
Resource Monitor
Los límites con los que trabaja el monitor se establecen en Settings → Watchdog & Resources (retención del Disk Janitor, presupuestos en GB del Disk Watchdog, reservas de CPU/RAM para pruebas); el número de Tasks que se ejecutan a la vez está en Settings → Pipeline → Max concurrently running tasks. Los slots de pool descritos a continuación son slots internos de recursos, no slots de proyecto de la licencia.
La pestaña "Queued"
La barra del monitor tiene una pestaña "Queued" que lista las Tasks que esperan para ejecutarse antes de ser tomadas para su ejecución.
Instantánea de ejecución y el segmento "Pools" de la barra de estado
El segmento "Pools" de la barra de estado muestra una instantánea de ejecución en vivo: para cada Task en curso o en espera indica waitKind (qué tipo de recurso está esperando) y waitedMs (cuánto tiempo lleva esperando), además de qué titulares del pool ocupan actualmente un slot, e indicadores de admisión/presión para ver cuándo un pool está bajo contención antes de que las Tasks empiecen a encolarse.
Panel Threads — dimensionado de pools según el RSS medido
El panel Threads generalizado muestra, por cada pool de recursos, los titulares individuales con su PID y su RSS medido (memoria residente), de modo que la capacidad del pool se dimensiona a partir del uso real de memoria medido y no de una estimación estática.
Métricas de tmpfs
La interfaz de Resource Monitor también muestra métricas de uso de tmpfs (sistema de archivos en memoria), de modo que la presión sobre el disco respaldado por memoria puede verse junto a la presión de procesos/pools.
Pool global de slots del ejecutor de pruebas
El panel Threads también muestra el pool global de slots del ejecutor de pruebas, es decir, cuántos slots de ejecución de pruebas están en uso en todo el proyecto, de modo que se puede saber si el paso de pruebas de una Task está esperando porque todos los slots del ejecutor de pruebas están ocupados.
Consejos
- Conviene revisar el waitKind del segmento Pools antes de dar por hecho que una Task está atascada: puede estar simplemente esperando a un pool ocupado.
- El RSS por titular del panel Threads sirve para detectar un proceso descontrolado antes de que provoque un OOM.
- Si la pestaña Queued sigue creciendo, conviene revisar los indicadores de presión de los pools para localizar el cuello de botella.