• Post Reply Bookmark Topic Watch Topic
  • New Topic

Axis2 performance tuning  RSS feed

 
Yashi Kumarj
Greenhorn
Posts: 3
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I recently started working on some performance tool development. In this tool, i am using Axis2 to make SOAP request [blocking call - requirement]. The following is the code snippet [from Amila's blog] that i used for testing.



For single thread execution, the number of transactions per second achieved was around 1000. I need to improve this performance by almost double. On analysis, what i came to know was, client code or client hardware or application that provides add int service or server hardware were not the bottleneck. I presume that Axis2 is simply not able send more request. How can i tune the performance of Axis2? what are the different options available in Axis2 to improve performance?
 
Ulf Dittmer
Rancher
Posts: 42972
73
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
An "add integers" web service is rather trivial - is that really a representative example of what this WS is intended to do? If so, my first question would be: why SOAP rather than REST? If it is not, then what meaningful numbers do you think you'll get by timing something that is not representative?

A gut feeling is that 1000 calls per second is not a bad number, given the SOAP overhead. I would also assume that Axis2 -which has been around and optimized for years- may not be able to scale much beyond that on a single machine. You may want to investigate load balancing over several servers if REST somehow is not an option.
 
Yashi Kumarj
Greenhorn
Posts: 3
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Mr. Dittmer,

Ofcourse it is not representative example. But to begin with i had started with that example. The tool that is intend to develop will be supporting both SOAP and REST. Hence, to begin with, i started with SOAP.

I did also tested the performance with different services, different thread count and with different duration [but single machine]. In all those cases, i was not able to get the numbers anywhere near to other tools.

Regarding the numbers, i had tested the same service with different performance tools and the TPS was some where near 1600-1700 for single thread. I did not attempted to understand their backend code to achieve that much TPS. Just was wondering if axis2 was not properly tuned [in my case] to make it working to full its capacity. what are the performance tuning parameters in axis2 that i can be configured?
 
Ulf Dittmer
Rancher
Posts: 42972
73
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Taking measurements before embarking on optimization is good; necessary, actually, IMO. Measuring non-representative scenarios negates the effect of measuring, though.

There are some things you can do on the client side (http://amilachinthaka.blogspot.de/2009/05/improving-axis2-client-http-transport.html, which it seems you have discovered already). For the server side I would assume that any speedup would have to come from the code and architecture of your solution, not from Axis2 itself.

(My first name is Ulf, by the way. If you want to address me by my last name, then that's fine, but the polite way to do so is by prefixing it by "Mr". First name is fine, though.)
 
Yashi Kumarj
Greenhorn
Posts: 3
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Ulf,

I will try to explore more on the server side and any other bottleneck which i have missed. I will keep you posted with all the findings in this reply chain. Thanks for all your valuable inputs.
 
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
Boost this thread!