Hello,
I have a simple Restful application (JAX-RS) that serves as an api-end point to other application and need to achieve at least 20,000 transactions per second.
The simplest end endpoint just takes a url parameter and persist it to the database using JPA.
I have taken all the under-listed steps, and still unable to achieve an average of 1,500 transaction per second.
Actually, I get timeout errors seconds after starting load test, which is also less than http-timeout configuration of 30 secs
Any further recommendations on how to achieve 20,000 transactions will be greatly appreciated.
Fine-Tuning
and fined-tuned it with the following configuration
JVM Options
Changed to -Xmx4g
Changed to -Xms4g
EJB Pool Settings
Initial and Minimum Pool Size: 2000
Maximum Pool Size: 5000
Pool Resize Quantity: 8
HTTP Network Listeners
Http Max Connections : 5000
Timeout : 30 sec
Thread Pools
Max Thread Pool Size: 500
Min Thread Pool Size: 100
JDBC Connection Pool
Initial and Minimum Pool Size : 1500
Maximum Pool Size: 2000
Pool Resize Quantity:50
Clustering & Load Balancing
I have created three (3) instances in one cluster, and load balance to all the three instances
Code Changes/Reactive Imprementation