3.6 KiB
3.6 KiB
Load Test Issues - Analysis & Fixes
🔍 Issues Identified from Terminal Output
1. CRITICAL: Too Many Concurrent Browsers (500)
Error: DevToolsActivePort file doesn't exist
Root Cause:
- Script tried to create 500 concurrent Chrome browsers
- This exceeds system capacity and crashes Chrome/ChromeDriver
- Each browser needs ~200-500MB RAM
- 500 browsers = ~100-250GB RAM needed!
Fix Applied:
- ✅ Added
--max-concurrentsafety limit (default: 20) - ✅ Automatic limiting if requested exceeds max
- ✅ Warning message when limiting occurs
2. Real-Time Metrics Not Showing
Issue: Metrics only printed at end, not during execution
Root Cause:
- No periodic metrics printing during execution
- Metrics only printed in final summary
Fix Applied:
- ✅ Added
print_real_time_metrics()function - ✅ Prints metrics every N students (configurable via
--metrics-interval) - ✅ Shows success rate, elapsed time, rate, average duration
3. Driver Setup Failures
Error: Driver setup failed: Message: session not created: DevToolsActivePort file doesn't exist
Root Cause:
- No retry logic for driver creation
- Resource contention when too many browsers created simultaneously
Fix Applied:
- ✅ Added retry logic (3 attempts with 2s delay)
- ✅ Additional Chrome stability options
- ✅ Better error messages
4. No Progress Tracking
Issue: Can't resume if script stops
Fix Applied:
- ✅ Use
load_test_e2e_assessment_advanced.pyfor progress tracking - ✅ Basic script now has real-time metrics
📋 How to Run Correctly
✅ CORRECT Usage (Small Load First)
# Start small to test
python scripts/load_test_e2e_assessment.py --students 10 --csv students.csv --concurrent 5
# Then scale up gradually
python scripts/load_test_e2e_assessment.py --students 50 --csv students.csv --concurrent 10
# For large loads, use advanced script
python scripts/load_test_e2e_assessment_advanced.py --students 100 --csv students.csv --concurrent 10
❌ WRONG Usage (What Caused the Crash)
# DON'T DO THIS - Will crash system!
python scripts/load_test_e2e_assessment.py --students 500 --csv students.csv --concurrent 500
🛡️ Safety Features Added
-
Automatic Concurrent Limiting:
- Default max: 20 concurrent browsers
- Configurable via
--max-concurrent - Warning when limiting occurs
-
Real-Time Metrics:
- Prints every N students (default: 10)
- Shows success rate, elapsed time, rate
- Configurable via
--metrics-interval
-
Driver Retry Logic:
- 3 retry attempts
- 2 second delay between retries
- Better error messages
-
Chrome Stability Options:
- Additional flags for high concurrency
- Prevents resource exhaustion
📊 Recommended Settings
| Students | Concurrent | Max Concurrent | Notes |
|---|---|---|---|
| 1-10 | 2-3 | 5 | Testing |
| 10-50 | 5-10 | 20 | Small load |
| 50-100 | 10-15 | 20 | Medium load |
| 100+ | 15-20 | 20 | Large load (use advanced script) |
🎯 Key Takeaways
- Never use 500 concurrent browsers - System will crash
- Start small - Test with 5-10 students first
- Use advanced script for large loads (has progress tracking)
- Monitor real-time metrics - Adjust concurrency based on success rate
- Use headless mode for better performance
✅ Fixed Issues
- ✅ Safety limit for concurrent browsers
- ✅ Real-time metrics printing
- ✅ Driver setup retry logic
- ✅ Better error handling
- ✅ Progress tracking (in advanced script)
Status: ✅ FIXED - Script now has safety limits and real-time metrics!