You deserve a solid gold trophy and a kiss from Miss Universe for running these performance tests.
At some point it would be great if you could find time to publish in detail how you run these tests so others of us can run and publish our own. In this way as a community, perhaps, we can build up over time a comprehensive profile across various environments of how Nitrogen/web server performance stacks up against other frameworks, as well as provide rich empirical data for determining where and how Nitrogen/web server performance can be improved.
No doubt Nitrogen will continue to evolve and performance will, we'd hope, improve incrementally. On-going performance testing by the community would hasten this evolution, I believe, and provide early warning when new features impose performance hits.
Similarly, once Nitrogen 1.0 is released, it would be great to have a similar community effort toward security stress testing.
These two things, combined with really great user documentation, would go a long way toward propelling Nitrogen to the levels of acceptance and popularity that I sense we all believe possible.
Incidentally, do you have comparable test data for other frameworks? Love to see the side-by-sides.
Thanks again,
Lloyd
>> At some point it would be great if you could find time to publish
>> in detail how you run these tests so others of us can run and
>> publish our own.
>
> It is very simple:
> * Start Quickstart
> * Run ab -c 10 -n 1000 http://127.0.0.1:8000/web/samples
> * See the result
Did you run quickstart.sh? Inets, Yaws, Mochiweb will yield different
performance profiles (although it'll be slight, since nitrogen will be
the bottleneck). Does your system have Hipe, smp?, do you see an
improvement if you edit quickstart to include +K? (kernel poll). You
mentioned you're on leopard, I am too, one machine is an old power pc
(no erlang hipe) and erlang performance a lot worse compared to my
intel mac pro.
> I am wondering if others do also see some failed requests in the
> result.
I ran some very quick tests on the intel mac using httperf. Note: the
test machine/server where the same, which is not acceptable for
published results! To get error messages, I have to achieve
saturation, (S-curve style drop in performance, connection resets
etc...) With mochiweb this occurred at about 190 requests per second,
with inets it's about 160. Does this mean there is room for
performance? Absolutely, now I can't speak for anyone else, but since
nitrogen is quite young the development focus is on it's feature set,
not optimizations.
>
>
> I will be very happy to create a wiki page about Nitrogen speed
> compared to that of Rails, Java Servlet etc. after there is no failed
> request.
As for rails. It's probably not possible to build a slower framework.
I'm not knocking them for this, rails is actually quite well designed.
The problem is ruby doesn't have any fast implementation, and the last
time I checked it's threading model was atrocious. To get performance
out of rails requires tremendous trickery.
We have to compare apples to apples so with java we'll need to pick
frameworks (Struts, Spring, some enterprise (lol) junk...), raw
servlets should be screamingly fast.
I have a life long devotion to hating PHP, so I'd like to see nitrogen
compared to some PHP frameworks (CAKE, CodeIgniter, Symfony (slooow))
- Tom
Okay. I think Mats' reasoning is correct, that is the problem being ab
itself (it really is quite old). httperf is very similar and I
recommend that as a good replacement for ab.
Mats, thanks for the Tsung recommendation, I wasn't even aware of it's
existence. I'll have to play around with that when I get time.
- Tom
On Tue, Apr 21, 2009 at 9:13 AM, etnt <torbjorn....@gmail.com> wrote:
> I also recommend exrefcheck, described here:
>
> http://blog.tornkvist.org/blog.yaws?id=1236148649288620
What a great tool! Was about to write the same functionality in the
next days which i can safely skip now.
Thank you for sharing it!
Martin