The Network Stresser is a modular automation framework designed to simulate high-density household traffic. Unlike standard speed tests, this tool evaluates how a network infrastructure (such as Mesh Wi-Fi systems) manages congestion, prioritizes traffic, and maintains stability under extreme load.
"While monitoring is useful, I built this Stresser to test how a mesh system handles Bufferbloat and Congestion Control. I wanted to see if the router's firmware could prioritize critical ACK packets even when the pipe is 95% full."
The project follows a decoupled, modular design to ensure scalability and ease of integration into CI/CD pipelines.
network-stresser/
├── src/
│ ├── __init__.py
│ ├── traffic_generator.py # Core engine using iperf3 to saturate bandwidth
│ ├── metric_collector.py # Real-time capture of CPU/Memory/Network IO
│ ├── validator.py # SLA engine to determine PASS/FAIL status
│ └── reporter.py # Data persistence and visualization (CSV/Matplotlib)
├── reports/ # Directory for generated logs and performance graphs
├── run_stresser.py # Main CLI entry point with interactive arguments
└── requirements.txt # Project dependencies (pandas, matplotlib, psutil)
- Multi-Threaded Traffic Generation
- Parallel Streams: Utilizes multiple concurrent threads to simulate real-world scenarios, such as multiple users streaming 4K video or downloading large assets simultaneously.
- iperf3 Integration: Leverages iperf3 JSON-stream parsing for high-precision TCP/UDP throughput measurements.
- Adjustable Load Levels: CLI support for configuring stress intensity (Low, Medium, High) via parallel connection counts and test durations.
- Edge Performance Tracking
- Latency Under Load (Bufferbloat): Monitors ping latency spikes during peak throughput to evaluate the effectiveness of SQM (Smart Queue Management).
- Throughput Drop-off Analysis: Tracks performance degradation over time to identify potential thermal throttling or hardware bottlenecks.
- System Resource Correlation: Simultaneously logs local CPU/Memory usage to distinguish between Client-side bottlenecks and Router-side limitations.
- Automated Validation & SLA
- SLA Compliance Check: Automatically validates if the network maintains a latency threshold (e.g., <100ms) and minimal packet loss during stress.
- Stability Scoring: Generates a consistency score based on throughput variance and retransmission rates across multiple iterations.
The framework automatically generates trend charts to help engineers visualize the "breaking point" of the network.
- Python 3.8+
- iperf3 installed on the system path.
git clone https://github.com/deadislove/network-stresser.git
cd network-stresser
pip install -r requirements.txt
Basic Run with 1 iteration:
python run_stresser.py -s [Server_IP] -r 1
Run a Gaming Preset test (Low-latency UDP focus) with 5 iterations:
python run_stresser.py -s [Server_IP] --preset gaming -r 5
Run a Video Streaming test (High-bandwidth TCP focus):
python run_stresser.py -s [Server_IP] --preset video -p 8 -t 15
In a Mesh environment (like eero), traffic management is complex due to backhaul contention. This tool provides the necessary data to:
- Verify Fairness Policies between different leaf nodes.
- Stress-test Backhaul Selection logic under heavy interference.
- Benchmark Roaming Performance when a client is under load.
Developed by Da-Wei Lin. Feel free to reach out for collaboration or to discuss network QA automation!