posted by Jon Nelson on Mon 25th Nov 2002 02:49 UTC
"More Performance, Conclusion"
How is performance measured?

For rough estimates of raw capability and throughput, I run benchmarks over localhost. Because these benchmarks aren't meaningful in real-world situations, I perform most benchmarks over a 100MBit ethernet LAN (or my new Gig-E LAN.)

I use zb (ZeusBench, the source code that formed the basis for ab, ApacheBench) to form the basis of most of my tests. For quick, one-off tests, I invariably run zb with the same parameters to keep as few variables changing as possible and provide the closest comparable numbers between runs.

To help automate the process of executing potentially thousands of zb runs, changing only one variable at a time, I wrote a python wrapper around zb. I also wrote some gnuplot programs which use this data, and the final result is a very good picture at how the web server performs under various concurrency and file size variations. The result is that Boa's performance scales in an essentially inverse direct relationship to concurrency and file size increases. What that means is that Boa's performance is very easy to predict under specific concurrency and file size loads, because the statistics are so consistent.

Interaction with External Processes

While Boa is a general purpose server, it does not contain special support for much more than the HTTP/1.0 (tentative and conditional support for HTTP/1.1 is in more recent versions of Boa) and CGI/1.1 specifications. Thus, any language that can be used as a CGI will work just fine, and this includes the popular scripting languages Python, Perl, and PHP.

At this time there is no direct support for PHP, and there is no analog to mod_perl, mod_snake/mod_python, or other loadable modules. It it hoped that a future version of Boa will support loadable modules, making Boa a much more versatile httpd.

Some Boa aficionados have experimented with embedding Perl or Python directly in Boa, although neither of these experiments is ready for prime-time just yet.

The Future

Prior to the 0.94 release, several branches of Boa were made to explore different process models and features, including threading, name-based virtualhost support, authentication and loadable modules to name a few. In fact, there are dozens of currently unrealized features that have already been implemented in one branch or another that might someday make it into a Boa release. In fact, there are outstanding requests for various features that have already been implemented in one of the branches that I hope will make it into the first 0.95.0 release.

Many people have asked me (and probably Larry, too), why there hasn't been a 1.0 release. I don't have a very good answer for that, but suffice it to say, we feel our 0.94 release is better than most 1.0 releases.

About the Author
Jon Nelson lives and works in his home state of Wisconsin with his family, and spends all together too much time in front of a computer screen. The author would like to thank Martin A. Brown, co-worker and friend, for his editing efforts.

Table of contents
  1. "Introduction, History"
  2. "Performance"
  3. "More Performance, Conclusion"
e p (0)    16 Comment(s)

Related Articles

posted by Thom Holwerda on Sat 6th Sep 2008 19:56, submitted by KAMiKAZOW
posted by Jon Jensen on Tue 26th Aug 2008 02:53 submitted by Ryan Masters