X-STR
stress-ng
Herramienta de stress-testing de sistemas que satura CPU, memoria, I/O y red para probar disponibilidad en un test de DoS autorizado.
Sitio oficialVolver al catálogo
RESUMEN
stress-ng (github.com/ColinIanKing/stress-ng) es una herramienta de stress-testing de sistemas Linux con más de un centenar de "stressors" seleccionables que cubren CPU, memoria, I/O de disco, sockets de red, operaciones de sistema de archivos y más, cada uno con número de workers y límite de tiempo o iteraciones configurable. Se construyó para pruebas de fiabilidad de kernel y hardware, no para ofensiva, pero los mismos generadores de carga son exactamente lo que necesita un test de disponibilidad/DoS acotado para demostrar que un servicio se degrada o cae bajo presión de recursos.
En el contexto de un engagement se usa para validar una hipótesis concreta y acordada de antemano — este endpoint no tiene rate limiting, este servicio no tiene techo de memoria, esta política de autoescalado no dispara a tiempo — en lugar de correrse sin criterio; la salida (métricas, bogo-ops/seg, timing) documenta exactamente cuánta carga se aplicó y durante cuánto tiempo, lo que se convierte en la evidencia del informe.
CASOS DE USO
Casos de uso en un engagement
- 01
Demostrar que un endpoint o servicio carece de rate limiting generando carga de CPU/sockets hasta que se degrada.
- 02
Probar si el monitoreo y las alertas realmente se disparan cuando ocurre una condición de agotamiento de recursos.
- 03
Validar el comportamiento de autoescalado o failover bajo un pico de carga controlado y acotado en el tiempo.
- 04
Reproducir un problema de disponibilidad reportado por el cliente con un perfil de estrés repetible y medido.
PRIMEROS PASOS
Solo dentro de una ventana de test de DoS/disponibilidad explícitamente autorizada y programada — para ver cómo responde un sistema objetivo o su monitoreo bajo presión real de recursos.
- Obtén autorización explícita por escrito para un test de DoS/disponibilidad, incluyendo alcance exacto, objetivo y ventana de mantenimiento.
- Acuerda un plan de rollback/aborto y un punto de contacto del lado del cliente antes de empezar.
- Instala stress-ng desde el gestor de paquetes de la distro o compílalo desde el código fuente.
- Ejecuta un stressor acotado en el tiempo contra el recurso acordado (CPU, memoria, sockets) a la intensidad acordada.
- Monitorea el comportamiento real del objetivo (latencia, errores, alertas) durante toda la prueba, y detente de inmediato si supera el impacto acordado.
stress-ng --cpu 4 --vm 2 --vm-bytes 1G --timeout 60s --metrics-briefANTES DE USARLA
Qué revisar antes de lanzarla
Este es un test adyacente a DoS: nunca lo corras contra un objetivo sin autorización explícita por escrito que nombre stress-ng específicamente, una ventana de mantenimiento acordada y un plan de rollback — una corrida sin acotar puede tumbar producción.
Empieza siempre con intensidad baja y un timeout corto, y sube solo según lo acordado; el agotamiento de recursos en infraestructura compartida puede afectar a otros inquilinos o servicios fuera del alcance previsto.
Mantén monitoreado el objetivo durante toda la corrida y detente de inmediato ante cualquier señal de impacto más allá de lo autorizado — el objetivo es evidencia, no una caída de servicio.