Zufeng Huang wrote:
  My steps:

General remarks: Make sure, that you understand the bottlenecks of your test runs x.1 and x.2. E.g. is one of them slower, because it saturated available network bandwith, or is it slower, because there are not enough threads in the AJP connector's thread pool. The best bottleneck to get is completely saturated CPU.

Your ab runs on a different system?

  1, Using a jsp as the target ONE.
  1.1, ab ¨Cn 25000 ¨Cc 1000 URL_via_apache
  Concurrency Level:      1000
  Time taken for tests:   410.105255 seconds
  Complete requests:      25000

This is very bad throughput! Using the default thread count on the AJP connector?

Try with concurrency 1 and then do a couple of runs with increasing concurrency to study the behaviour.

I would expect latency to go up, especially for trivial dynamic content and static content, but I would not expect to get a huge decrease in throughput, as long as you add enough CPU resources for the additional httpd overhead. You can approximate the relative CPU overhead by measureing CPU needed with concurrency one (and enough requests to produce mesurable CPU times).

In general, since latency goes up, you would also need higher concurrency for the optimal throughput with httpd/Tomcat instead of Tomcat standalone. In your case I expect concurrency 1000 to be beyond the optimal point for 1.1 and 1.2. Usually you start by defining some throughput goal (e.g. in requests per second) and you increase concurrency until you get the best throughput. If it is above your requirement, and the response times are good enough, you are done.

  1.2,ab ¨Cn 25000 ¨Cc 1000 URL_direct_to_tomcat
  Concurrency Level:      1000
  Time taken for tests:   12.297322 seconds
  Complete requests:      25000
2, Using a html page as the target TWO.
  2.1, ab ¨Cn 25000 ¨Cc 1000 URL_via_apache
  Concurrency Level:      1000
  Time taken for tests:   25.655253 seconds
  Complete requests:      25000
2.2, ab ¨Cn 25000 ¨Cc 1000 URL_direct_to_tomcat
  Concurrency Level:      1000
  Time taken for tests:   24.132493 seconds
  Complete requests:      25000

The numbers are so close, that I would expect, that both solutions did not saturate your CPU and you reached some other bottleneck, like network bandwith, the ability of ab to handle client requests, or the number of TIME_WAIT connetions in your tcp connection hash.

Did you use http keep-alive?

  1, According to my configurations, apache(2.2.4) has NO advantage against 
tomcat(5.5.15) in processing static content.

I'm not sure, if your measurement shows that. But I wouldn't argue for httpd because of performance reasons. For me it is more the configuration flexibility, which makes it very powerful in complex integration scenarios.

  2, In processing dynamic content, apache make performance decrease 
dramatically.

Performance in terms of latency: yes for fast requests.
Performance in terms of throughput: in my experience no, if you add some CPU ressources and do good sizing.

  It¡¯s the matter of MPM-prefork/worker???

In general prefork should be fine for performance, because it is less complex than worker. But prefork needs slightly more ressources. So make sure, that you have enough memory for your more than 1000 httpd children.

FYI: <IfModule prefork.c>
  StartServers 50
  MinSpareServers 50
  MaxSpareServers 100

Your test run is a little short in order to make startup of 900 additional processes neglectable, at least once your httpd/Tomcat combination is close to the Tomcat performance. So increase MaxSpareServers to 1000 and make sure, that you do some test run before doing the one you are taking your results from.

  ServerLimit 2000
  MaxClients 1500
  MaxRequestsPerChild 0
  </IfModule>
------------------------------
  maxThreads="1500" minSpareThreads="20" maxSpareThreads="50"
  enableLookups="false" redirectPort="8443" acceptCount="300"

Also in your AJP connector?

Are httpd and Tomcat on the same system?

Regards,

Rainer

---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to