Java – JBoss cannot handle more than 3000 requests
I created a client and server web service I thought about doing a performance test I tried a JMeter with a sample test plan to execute it Up to 3000 requests, JBoss processes the request, but when the request exceeds 3000, some requests are not processed (in the sense of unable to open the connection: the connection is rejected) I have to make changes at the same time to process more than 10000 requests Is it JBoss or system throughput?
JMeter configuration: 300 threads, 1 second acceleration and 10 cycles
System (server configuration): Windows 7,4g RAM
Solution
The 10000 concurrent requests in Tomcat (I believe it is used in JBoss) are quite a lot In a typical setup (using a blocking IO connector), one thread is required for each HTTP connection This is too much for an ordinary JVM On a 64 bit server computer, a thread needs 1 MIB (check out the - XSS parameter) And you only have 4 gib
Moreover, number of context switches will kill your performance You need hundreds of cores to handle all these connections effectively If your request is I / O or database binding – you will see bottlenecks elsewhere
Having said that, you need a different approach Try non - blocking I / O or asynchronous servlets (starting with 3.0) or... Scaling out By default, Tomcat can handle 100-200 concurrent connections (reasonable default), and the number of queued connections is similar All of the above are rejected, and you may be experiencing this
You can also have a look
> Advanced IO and Tomcat > Asynchronous Support in Servlet 3.0