Programacion consciente de recursos
Encolar un despacho en vez de amontonarse sobre una maquina saturada, y mirar la cola con orch status.
Objetivo#
Evitar que una maquina ocupada empeore: cuando el host ya esta cargado, un
despacho nuevo espera su turno — visible como queued — en vez de arrancar
junto con todo lo demas y frenar a cada worker por igual. Apagado por
defecto, asi que una maquina tranquila no ve ningun cambio.
Pasos#
-
Define uno o ambos umbrales en
orch.yaml:scheduler: max_load: 0.85 # encola si la fraccion de CPU ocupada supera esto (0-1); 0 = apagado min_free_mem_mb: 512 # encola si la memoria libre cae bajo esto en MB; 0 = apagado max_wait_sec: 0 # tope de la espera; 0 = el timeout propio de ese despachoAmbos umbrales estan apagados a menos que los definas — un workshop que nunca toca esta seccion despacha exactamente igual que antes del item 7.
-
Despacha como siempre. Cuando el host supera un umbral configurado al momento del despacho, la sesion queda registrada
queued(task list --status queued,session list,orch status) y la llamada de despacho se bloquea, consultando el host cada par de segundos, hasta que la carga baje omax_wait_secse cumpla. -
Mira la cola en vivo:
orch status # carga del host + profundidad de la cola para esta carpeta orch task list --status queued -
Subir
scheduler.max_loadenorch.yamlmientras un despacho ya esta en cola surte efecto en la siguiente consulta de ese despacho — no hace falta reiniciar.
Que pasa en un timeout#
Un despacho encolado que nunca se libera dentro de max_wait_sec falla con
scheduler: waited <duracion> over max_load (o under min_free_mem_mb) en
vez de quedar colgado para siempre; la sesion queda marcada failed, no
queued.
Cobertura por plataforma#
El sampler de carga lee /proc en Linux y GetSystemTimes /
GlobalMemoryStatusEx en Windows. Donde una plataforma no tiene una lectura
barata (macOS por ahora), los umbrales se saltan en vez de compararse contra
una adivinanza — un despacho nunca se encola por una lectura que nadie pudo
tomar de verdad.
Relacionado#
- Paquete de evidencia — una espera en cola aparece en el propio log de la sesion, no en los numeros de tokens/costo del paquete.