UD6 · Seguridad, privacidad y trazabilidad | MP04 · Infraestructura para la ejecución de LLMs
Parada y degradacion controlada ante saturacion
Patron de parada controlada (graceful shutdown)
import signal, asyncio
cola_activa = True
def señal_parada(signum, frame):
global cola_activa
cola_activa = False
print("Señal de parada recibida. Completando peticiones en curso...")
signal.signal(signal.SIGTERM, señal_parada)
signal.signal(signal.SIGINT, señal_parada)
@app.post("/v1/chat/completions")
async def completions(request: dict):
if not cola_activa:
raise HTTPException(status_code=503,
detail="Servidor en proceso de parada. Use otro nodo.")
Degradacion por saturacion de VRAM
VRAM_USADA=$(nvidia-smi --query-gpu=memory.used --format=csv,noheader,nounits)
VRAM_TOTAL=$(nvidia-smi --query-gpu=memory.total --format=csv,noheader,nounits)
PCT=$(( VRAM_USADA * 100 / VRAM_TOTAL ))
if [ $PCT -gt 95 ]; then
curl -s -X PATCH http://localhost:8001/admin/config \
-H "Authorization: Bearer $ADMIN_TOKEN" \
-d '{"max_tokens": 512, "max_num_seqs": 4}'
logger "LLM DEGRADADO: VRAM al ${PCT}% — max_tokens reducido a 512"
fi