🧪 Problem-Driven Systems Lab
🧠 Caso 05 · Rendimiento

Presion de memoria y fugas de recursos

El sistema consume memoria, descriptores o conexiones de forma progresiva hasta degradar o caerse.

OPERATIVO 🐘 PHP🐍 Python🟢 Node.js☕ Java🔵 .NET🐹 Go🦀 Rust

📈 Que cambia para el negocio

Sirve para razonar estabilidad, limites de recursos y degradacion progresiva antes del colapso.

💼 Que demuestra tecnicamente

Visibiliza un problema silencioso y muy real: procesos que no fallan de inmediato, pero acumulan estado hasta necesitar reinicios o terminar cayendo.

✅ Evidencia que deja

  • Compara /batch-legacy y /batch-optimized con estado acumulado entre requests.
  • Hace visible retained_kb, descriptor_pressure y pressure_level en el tiempo.
  • Expone state, runs y diagnostics/summary para seguir la degradacion progresiva.

👀 Que mirar al ejecutarlo

  • Si retained_kb sube en legacy tras varias ejecuciones y se mantiene acotado en optimized.
  • Si pressure_level cambia de healthy a warning o critical en el modo defectuoso.
  • Si peak_request_kb y retained_after_kb cuentan una historia coherente del leak.
Honestidad: No pretende copiar al milimetro el modelo de memoria de cada runtime. Si deja visible la senal operacional importante: crecimiento silencioso, degradacion progresiva y necesidad de limpieza.

Como esta resuelto en cada stack

PHP 8.3 con estado retenido, presion progresiva y comparacion legacy vs optimized; Python con tracemalloc; Node.js 22 con process.memoryUsage() midiendo heap V8 y RSS reales; Java 21 con LinkedHashMap.removeEldestEntry LRU + Runtime metrics; .NET 8 con LRU manual basado en Dictionary + LinkedList + Process.WorkingSet64

StackHealth check localComposeDetalle
🐘 PHP 8.3http://localhost:8100/05/healthcompose.root.ymlREADME del stack
🐍 Python 3.12http://localhost:8200/05/healthcompose.python.ymlREADME del stack
🟢 Node.js 22http://localhost:8300/05/healthcompose.nodejs.ymlREADME del stack
☕ Java 21http://localhost:8400/05/healthcompose.java.ymlREADME del stack
🔵 .NET 8http://localhost:8500/05/healthcompose.dotnet.ymlREADME del stack
🐹 Go 1.23http://localhost:8600/05/healthcompose.go.ymlREADME del stack
🦀 Rust 1.83http://localhost:8700/05/healthcompose.rust.ymlREADME del stack

El expediente completo

El caso no empieza en el codigo: empieza en el sintoma y termina en el postmortem.

← Caso 04Caso 06 →