CXF Gurus, We are using CXF for a bunch of web services on our enterprise grade servers. We were noticing that our throughput of requests was peaking at an average of 42 transactions/second (a transaction here is 1 SOAP request/response combo).
To investigate whether the bottleneck was in the system or in the web service, we added a simple API (getStartTime) that just returns a string without communicating with the rest of the system. The API has no parameters, and just returns a small string (timestamp) - so the size of the message is very small. We used SOAPUI's load test feature to run multiple threads against the server that just call getStartTime. However, once again, we can only get a max throughput of 42 transactions per second - no matter how many client threads we have. The system CPU is about 50% idle during the test and we do not seem to be memory bound either. We're running CXF 2.4.3 in Tomcat 7.0. Tomcat's config had acceptCount="100", maxThreads="150" - which should not cause any throttling to kick in. I set both those to 300 but that did not change our throughput. I checked iptables - there is no throttling going on there either. Since I have checked everything else it seems like the bottleneck is in CXF. Is there something in CXF that throttles requests? If so, is it configurable? I know 42 is the answer to life the universe and everything but does anyone have other thoughts on how to increase our system throughput? tia, rouble
