PropertyDamage.Nemesis.ResourceExhaustion (PropertyDamage v0.2.0)
View SourceExhaust system resources to test resilience.
Consumes various system resources (file descriptors, ports, ETS tables, atoms) to test how the system behaves under resource pressure.
Configuration
:resource- What to exhaust::file_descriptors,:ports,:ets_tables,:processes:count- How many resources to consume (default varies by type):duration_ms- How long to hold resources (default: 5000ms)
Warning
This operation actually exhausts system resources. Use with caution:
:file_descriptors- Opens files, may hit ulimit:ports- Opens ports, consumes system resources:ets_tables- Creates ETS tables, consumes memory:processes- Spawns processes, may hit process limit
Example
def commands do
[
{OpenConnection, weight: 5},
{PropertyDamage.Nemesis.ResourceExhaustion, weight: 1}
]
endTesting Behavior
Under resource exhaustion, your system should:
- Handle resource allocation failures
- Clean up resources appropriately
- Degrade gracefully when limits are reached