Re: [ANNOUNCE] Hello World Benchmarks, updated

2001-07-12 Thread Joshua Chamas

Joshua Chamas wrote:
 
  mod_caucho
 used to look a lot faster, but my testing methodology changed.
 I used to take the results of the second benchmark run, and
 publish those, but this time only ran the -test for minor
 caching after starting resin (  tomcat ).  So, I'm guessing
 that mod_caucho compiles aggresively in the beginning, killing
 performance for a dry run ( even 60 seconds! ).  To improve
 the numbers for mod_caucho using this methodology might require
 and longer test cycle than 60 seconds.
 

Perrin convinced me that getting steady-state numbers 
was important enough to ignore the compile penalties 
for such apps as mod_caucho which does runtime java
compilation.  

To this end, I have added a -prime switch to the bench.pl 
which will run all the tests for a couple seconds, before
doing the real benchmark where the results are scored.  
This allows any system caching to be done before the 
numbers start counting.

However, despite the new -prime setting, I was still not
getting reproducable resin/mod_caucho results, varying 
from 80 hits/sec one run to 280 hits/sec the next for
the Hello World 2000 JSP benchmark.

What I found is that in order for the mod_caucho results
to be reproducable to 5% variation from one run to the 
next, I need to run the benchmark for 10 minutes!  At 3-5 
minutes, there was a 10-15% variation, which seems too high.
Benchmarks  120 seconds, which were my benchmarks from before
seem next to meaningless now.

Here's some #s to show what I mean:

Test Name   Test File  Hits/sec   # of Hits  Time(sec)  
secs/Hit   Bytes/Hit  
-   -  -  -  -  
-  -  
mod_caucho JSP 2000 h2000.jsp75.4   9069 120.33 
0.013269   28965
mod_caucho JSP 2000 h2000.jsp   249.4   2505  10.05 
0.004010   28965  
mod_caucho JSP 2000 h2000.jsp   274.5   4118  15.00 
0.003643   28965 
mod_caucho JSP 2000 h2000.jsp   191.9   5760  30.01 
0.005211   28965 
mod_caucho JSP 2000 h2000.jsp   133.7   8022  60.01 
0.007481   28965  
mod_caucho JSP 2000 h2000.jsp   104.8  12591 120.10 
0.009539   28965
mod_caucho JSP 2000 h2000.jsp96.0  11581 120.66 
0.010419   28965
mod_caucho JSP 2000 h2000.jsp   113.6  19937 175.51 
0.008803   28965  
mod_caucho JSP 2000 h2000.jsp   103.9  18283 175.98 
0.009625   28965 
mod_caucho JSP 2000 h2000.jsp91.4  27146 297.16 
0.010947   28965  
mod_caucho JSP 2000 h2000.jsp   105.0  31335 298.57 
0.009528   28965  
mod_caucho JSP 2000 h2000.jsp91.4  27210 297.76 
0.010943   28965  
mod_caucho JSP 2000 h2000.jsp88.8  52440 590.56 
0.011262   28965  
mod_caucho JSP 2000 h2000.jsp93.5  55129 589.64 
0.010696   28965  

The numbers seem to indicate that the resin/mod_caucho java 
environment gets slow the longer tests are run for, but also
that the results stabilize the longer tests are run for.

As a result, when I post benchmarks, it will be with
10 minute tests run in the future.  The idea here is
stable, repeatable benchmarks we can use.

Here were the 60 second #s I had posted before just to show
how far off the mod_caucho #s were.

 Test Name   Test File  Hits/sec   Total Hits Total Time 
sec/Hits   Bytes/Hit
 -- -- -- -- 
-- --
 Apache::ASP v2.19 2000  h2000.asp   226.2 13578 hits 60.02 sec  
0.004421   28998 byte
 Apache::Registry v2.01 2000 mod_per h2000.reg   339.5 20376 hits 60.02 sec  
0.002945   28179 byte
 HTML::Embperl v1.3.0 2000   h2000.epl   111.3 6677 hits  60.00 sec  
0.008987   28841 byte
 HTML::Mason v1.03 2000  h2000.mas83.5 5014 hits  60.02 sec  
0.011969   28799 byte
 HTML::Template v2.3 2000h2000.htmp   98.2 5892 hits  60.00 sec  
0.010183   29152 byte
 mod_caucho JSP 2000 h2000.jsp76.6 4595 hits  60.01 sec  
0.013060   28965 byte


--Josh



Re: [ANNOUNCE] Hello World Benchmarks, updated

2001-07-11 Thread Philip Mak

One thing caught my eye; how come mod_perl handler (808.4 hits per
second) performed better than HTML static (768.2 hits per second)?

And sorry for my newbie-ish question, but what is the difference
between mod_perl handler and Apache::Registry mod_perl?





Re: [ANNOUNCE] Hello World Benchmarks, updated

2001-07-11 Thread Perrin Harkins

Good work as usual, Joshua.

  mod_caucho
 used to look a lot faster, but my testing methodology changed.
 I used to take the results of the second benchmark run, and
 publish those, but this time only ran the -test for minor
 caching after starting resin (  tomcat ).  So, I'm guessing
 that mod_caucho compiles aggresively in the beginning, killing
 performance for a dry run ( even 60 seconds! ).  To improve
 the numbers for mod_caucho using this methodology might require
 and longer test cycle than 60 seconds.

Ouch!  I would think it's worth doing one full run to prime each system.  Or
do you feel a need to include the initial compilation time?

- Perrin




Re: [ANNOUNCE] Hello World Benchmarks, updated

2001-07-11 Thread Perrin Harkins

Good work as usual, Joshua.

  mod_caucho
 used to look a lot faster, but my testing methodology changed.
 I used to take the results of the second benchmark run, and
 publish those, but this time only ran the -test for minor
 caching after starting resin (  tomcat ).  So, I'm guessing
 that mod_caucho compiles aggresively in the beginning, killing
 performance for a dry run ( even 60 seconds! ).  To improve
 the numbers for mod_caucho using this methodology might require
 and longer test cycle than 60 seconds.

Ouch!  I would think it's worth doing one full run to prime each system.  Or
do you feel a need to include the initial compilation time?

- Perrin




Re: [ANNOUNCE] Hello World Benchmarks, updated

2001-07-11 Thread Joshua Chamas

Perrin Harkins wrote:

   mod_caucho
  used to look a lot faster, but my testing methodology changed.
  I used to take the results of the second benchmark run, and
  publish those, but this time only ran the -test for minor
  caching after starting resin (  tomcat ).  So, I'm guessing
  that mod_caucho compiles aggresively in the beginning, killing
  performance for a dry run ( even 60 seconds! ).  To improve
  the numbers for mod_caucho using this methodology might require
  and longer test cycle than 60 seconds.
 
 Ouch!  I would think it's worth doing one full run to prime each system.  Or
 do you feel a need to include the initial compilation time?
 

I do feel that compile time matters, but really with 60 seconds
and high MaxRequestsPerChild, these systems are getting plenty
of compiling caching., these are thousands of requests we are
talking about, what if we had lower MaxRequests, or big sites
with lots of templates ... if we wanted to do away with compile 
time entirely, we'd make sure that each system got to precompile 
all its templates like Apache::RegistryLoader, Apache::ASP-Loader() 
 Embperl's Execute() in the parent httpd.  

Gerald suggested this before  I think it could be good, but for 
two reasons: compile time is a very real problem for some 
types of apps like large web sites, and there is an increased 
burden on optimizing each benchmark, which implies an expertise
in the development environment that many users may not
have normally.  I have been trying for more out of box benchmarks, 
and not highly optimized benchmarks, using mostly the shipping 
config for a system.

I have thought about having lower MaxClients as an option to the 
bench to help test compile times, but this doesn't affect the 
java engines which effectively have their own backend web servers
running, like mod_proxy/mod_perl dual httpds.

People have suggested before ( you? ) to do two runs, and 
average the results, and I think that this is a fair approach,
and might be better than just doubling the test time because
the systems might interact, better yet, do them in one order,
and then reverse them, to average out sequential interactions
of the tests on a system ( ??? )

--Josh

_
Joshua Chamas   Chamas Enterprises Inc.
NodeWorks Founder   Huntington Beach, CA  USA 
http://www.nodeworks.com1-714-625-4051



Re: [ANNOUNCE] Hello World Benchmarks, updated

2001-07-11 Thread Perrin Harkins

 I do feel that compile time matters, but really with 60 seconds
 and high MaxRequestsPerChild, these systems are getting plenty
 of compiling caching.

The thing is, if mod_caucho takes 5 seconds the first time it hits each
template, but is the fastest afterwards, these numbers don't give a very
accurate picture of that.  Most people expect a hit on the first access.

 if we wanted to do away with compile
 time entirely, we'd make sure that each system got to precompile
 all its templates like Apache::RegistryLoader, Apache::ASP-Loader()
  Embperl's Execute() in the parent httpd.

No need for anything that fancy.  I'd say just run the test once as a primer
and throw away the results, like you were doing before.  It could be for 10
seconds instead of 60.

 compile time is a very real problem for some
 types of apps like large web sites, and there is an increased
 burden on optimizing each benchmark, which implies an expertise
 in the development environment that many users may not
 have normally.  I have been trying for more out of box benchmarks,
 and not highly optimized benchmarks, using mostly the shipping
 config for a system.

I feel like allowing the templates to compile isn't tuning, just ignoring
startup costs.

 People have suggested before ( you? ) to do two runs, and
 average the results, and I think that this is a fair approach,
 and might be better than just doubling the test time because
 the systems might interact, better yet, do them in one order,
 and then reverse them, to average out sequential interactions
 of the tests on a system ( ??? )

I wouldn't worry about them interacting so much, but I did suggest running
multiple times and averaging.  I think it helps smooth out random bad runs,
which do happen now and then.

Any numbers on the new Apache::ASP CGI mode?

- Perrin




Re: [ANNOUNCE] Hello World Benchmarks, updated

2001-07-11 Thread Joshua Chamas

Perrin Harkins wrote:
 
  I do feel that compile time matters, but really with 60 seconds
  and high MaxRequestsPerChild, these systems are getting plenty
  of compiling caching.
 
 The thing is, if mod_caucho takes 5 seconds the first time it hits each
 template, but is the fastest afterwards, these numbers don't give a very
 accurate picture of that.  Most people expect a hit on the first access.
 

I get it, but I don't like it... why should an app get to spend
( hypothetically ) 60 seconds compiling a template into highly optimized
assembly at runtime, and not have to show this cost in the benchmark.

I'd be willing to run a test for longer, or run it multiple times,
but to entirely throw out the compilation phase results just seems
wrong to me.  I'd like to see some middle ground here.

 No need for anything that fancy.  I'd say just run the test once as a primer
 and throw away the results, like you were doing before.  It could be for 10
 seconds instead of 60.
 

Another reason not to throw out the results is that it represents
a legitimate web request as part of the apps life cycle.  There
might be some user sitting at the end of that 5 second delay.

But then if we talk about throwing out highs  lows this starts
to sound almost scientific.  Like run 10 time slices, throw
out the highest  lowest times?

 I wouldn't worry about them interacting so much, but I did suggest running
 multiple times and averaging.  I think it helps smooth out random bad runs,
 which do happen now and then.
 
 Any numbers on the new Apache::ASP CGI mode?
 

Horrid.  Won't set up a benchmark yet, but its something like
3 hits/sec on my system compared with mod_cgi CGI.pm which is
11 hits/sec.  ASP won't be optimized for mod_cgi type execution
any time soon, which would require not loading in all the code
per request which it does now for best mod_perl use.

--Josh



Re: [ANNOUNCE] Hello World Benchmarks, updated

2001-07-11 Thread Stas Bekman

On Wed, 11 Jul 2001, Philip Mak wrote:

 And sorry for my newbie-ish question, but what is the difference
 between mod_perl handler and Apache::Registry mod_perl?

http://perl.apache.org/guide/performance.html#Apache_Registry_PerlHandler_vs_
including the benchmarks


_
Stas Bekman  JAm_pH --   Just Another mod_perl Hacker
http://stason.org/   mod_perl Guide  http://perl.apache.org/guide
mailto:[EMAIL PROTECTED]   http://apachetoday.com http://eXtropia.com/
http://singlesheaven.com http://perl.apache.org http://perlmonth.com/