AITM mette a disposizione una vista di monitoraggio delle risorse in tempo reale per vedere cosa è effettivamente in esecuzione, in attesa e consumatore di risorse in ogni momento — utile per capire perché un Task è bloccato in attesa, o per individuare una pressione sulle risorse prima di un crash.
Resource Monitor
I limiti con cui lavora il monitor si impostano in Settings → Watchdog & Resources (conservazione del Disk Janitor, budget in GB del Disk Watchdog, riserve di CPU/RAM per i test); il numero di Task eseguiti contemporaneamente si imposta in Settings → Pipeline → Max concurrently running tasks. Gli slot dei pool descritti di seguito sono slot di risorse interni, non slot di progetto della licenza.
La scheda "Queued"
La barra del monitor ha una scheda "Queued" che elenca i Task in attesa di essere eseguiti prima di essere presi in carico per l'esecuzione.
Snapshot di esecuzione & segmento "Pools" della barra di stato
Il segmento "Pools" della barra di stato mostra uno snapshot di esecuzione in tempo reale: per ogni Task in corso o in attesa indica waitKind (il tipo di risorsa che sta attendendo) e waitedMs (da quanto tempo attende), oltre a quali titolari del pool detengono attualmente uno slot, e gli indicatori di ammissione/pressione, così da vedere quando un pool è sotto contesa prima che i Task comincino ad accodarsi.
Pannello Threads — dimensionamento del pool in base alla RSS misurata
Il pannello Threads generalizzato mostra, per ogni pool di risorse, i singoli titolari con il loro PID e la RSS misurata (memoria residente), in modo che la capacità del pool sia dimensionata sull'utilizzo reale misurato della memoria e non su una stima statica.
Metriche tmpfs
L'interfaccia del Resource Monitor mostra anche le metriche di utilizzo di tmpfs (filesystem in memoria), così da vedere la pressione del disco basato sulla memoria accanto a quella di processi/pool.
Pool globale degli slot del test runner
Il pannello Threads mostra anche il pool globale degli slot del test runner, cioè quanti slot di esecuzione dei test sono in uso a livello di tutti i progetti, per capire se il passo di test di un Task è in attesa perché tutti gli slot del test runner sono occupati.
Suggerimenti
- Controllare il waitKind del segmento Pools prima di presumere che un Task sia bloccato — potrebbe semplicemente essere in attesa di un pool occupato.
- Usare la RSS per titolare del pannello Threads per individuare un processo fuori controllo prima che vada in OOM.
- Se la scheda Queued continua a crescere, controllare gli indicatori di pressione dei pool per individuare il collo di bottiglia.