After performing loading testing on a simple JSP on Tomcat with 200 concurrent users, the average response time needed ~10 seconds. It was just a page echo the current date time only. Why the performance is so disappointing? Is there any way I can tune the Tomcat (by configuration or other means) to improve it?
OS: Solaris 2.8
Machine: Ultra-250, 2 CPU, 2 GB Ram,
JVM: JDK 1.3.1
Tomcat: Catalina 4.0.1 bundled from JBoss 2.4.4
There's a ton of stuff you can do. Some examples include JVM tunings (are you using LWPSynchronization for example?) What CATALINA_OPTS do you have set? Are you using a thread pool for your connectors? For your HttpConnector, what is MaxProcessors set to? Do you have TCP tuned (if performance is as poor as you mentioned, it's not even going to be to this level yet...you've got some other tuning to do first.)
There's a lot of questions that can be asked obviously, but you need to do some groundwork first on figuring out where it stands. You have a benchmark currently. Turn some knobs and test again.
If you haven't done so already, try adding the following options when you start your JVM:
-server -ms256m -mx256m -XX:NewSize=128m -XX:MaxNewSize=128m -XX:SurvivorRatio=4
You can play with these numbers to tune performance....although these are mainly garbage collector tuning options, so they might not help much in your test case. Make sure the server option is always first. All java options are documented (somewhere) on Sun's site.
First of all,i wanted to know that where is the resource crunch taking place.
Better use Jprobe tool and find out the which part is taking somuch of resource then we can give some suggestion for that.
Present scenario is bcos of tomcat or source code.you are not using not much of code.
it might be ur network traffic or location of the Database(if u use any database).
if i get this kind of info..sothat i can give the solution for this.
keep in touch.
I made load test with 800 simultaneous users, with a page similar to that you´re describing. I used a pentium III 800, with 512 MB ram. I got subsecond answer all time (800 ms avg time). However, I configured the tomcat processors to 300, and used 200 Mb ram in the jvm (-Xmx200M). However, tomcat never used more than 60 mb.