๐งฎ RPS Calculator
Calculate the optimal JMeter settings for your target RPS:
Understanding Load Testing Fundamentals
RPS = (Number of Threads ร Loop Count) รท (Test Duration + Think Time)
๐ฏ What is RPS?
Requests Per Second (RPS) measures how many HTTP requests your system can handle in one second.
500 RPS means your system should process 500 requests every second during the test.
โก Why 500 RPS?
This is a significant load that can reveal:
- Database connection limits
- Memory usage patterns
- CPU bottlenecks
- Network saturation points
JMeter Parameters Deep Dive
๐ฅ Number of Threads (Users)
What it is: The number of virtual users JMeter will simulate concurrently.
How it affects RPS: More threads = potentially higher RPS, but diminishing returns apply.
๐ Ramp-up Period
What it is: Time taken to start all threads gradually.
Why it matters: Prevents overwhelming the server with sudden load spikes.
๐ Loop Count
What it is: How many times each thread executes the test plan.
Options:
- Infinite: Threads run until test duration ends
- Fixed: Each thread runs exactly N times
โฑ๏ธ Test Duration
What it is: Total time the test runs.
Recommendations:
- 5-10 minutes: Quick validation tests
- 30-60 minutes: Stress testing and monitoring
- 2+ hours: Endurance testing
โณ Think Time (Timer)
What it is: Pause between requests to simulate real user behavior.
Impact on RPS: Longer think time = lower RPS from same number of threads.
For realistic simulation: Use 1-5 seconds think time
Step-by-Step Configuration
๐ ๏ธ Basic Test Plan Setup
- Create Test Plan
Right-click Test Plan โ Add โ Threads โ Thread Group
- Configure Thread Group
- Number of Threads: 100
- Ramp-up Period: 60 seconds
- Loop Count: Infinite โ
- Duration: 300 seconds
- Add HTTP Request
Right-click Thread Group โ Add โ Sampler โ HTTP Request
๐๏ธ Advanced Settings
Constant Throughput Timer
Target Throughput: 30000 (samples per minute for 500 RPS)
Calculate based on: All active threads
HTTP Request Defaults
Settings:
- Server Name: your-api-server.com
- Port: 443 (HTTPS) or 80 (HTTP)
- Protocol: https or http
๐ Essential Listeners
- Summary Report: Overall test statistics
- Aggregate Report: Detailed response time metrics
- View Results Tree: Individual request/response details (disable during load test)
- Simple Data Writer: Export results to CSV
Monitoring and Optimization
๐ Key Metrics to Watch
- Throughput: Actual RPS achieved
- Response Time: Average, 90th, 95th percentiles
- Error Rate: Should be < 1% for valid tests
- Active Threads: Number of concurrent users
๐ง Troubleshooting Common Issues
Not Reaching 500 RPS?
- Increase thread count
- Reduce think time
- Check JMeter heap size (-Xmx4g)
- Verify server capacity
High Error Rates?
- Reduce ramp-up speed
- Check connection timeouts
- Verify server resources
- Review application logs
โ๏ธ JMeter Performance Tuning
-Xms1g -Xmx4g -XX:+UseG1GC
-XX:MaxGCPauseMillis=100
-Djava.net.preferIPv4Stack=true
jmeter.save.saveservice.output_format=csv
jmeter.save.saveservice.response_data=false
jmeter.save.saveservice.samplerData=false