[ LUGOS ] Primerjava streznikov

Iztok Umek iztok na snet.fri.uni-lj.si
Čet Avg 13 08:05:54 CEST 1998


-----------------------------------------------------------------------
InterNet: iztok na ieee.si       Sun Certified System Administrator (SCSA)
Snail Mail: Iztok Umek, Pod vinogradi 39, SI-8351 Straza, Slovenia
URL: http://gea.fri.uni-lj.si/~iztok

---------- Forwarded message ----------
Date: 12 Aug 1998 21:13:25 -0700
From: David Hedbor <david na idonex.se>
To: Mario Lorenz <ml na vdazone.org>
Cc: roxen na roxen.com
Subject: Re: Several newbie questions...
Resent-Date: Thu, 13 Aug 1998 06:16:07 +0200 (MET DST)
Resent-From: roxen na roxen.com

Mario Lorenz <ml na vdazone.org> writes:

> 5) Performance. OK I know, benchmarks aren't really meaningful, but I tried
> a simple one: I used wget to recursively copy a whole Web tree from one
> machine to another (both P200, via 10MBit ethernet), using both apache and
> then roxen. (I ran this test several times). APACHE was always faster, in
> the order of about 30%. The Roxen manual claims that the speed limit is the
> operating system's network routines. Since apache uses the very same network
> routines I wonder if either the manual is wrong or I have some setup problem ?
> I really don't care much about this, since Roxen still could easily use all
> available internet bandwith here - I am just curious :)

First of all - by default Roxen is compiled with lots of run-time
debug. By disabling this, (configure with --without-debug), Roxen will
run noticable faster. A second issue is parsing, as mentioned
already. To get a fair speed comparision, the html-parser shouldn't be
enabled - especially not if you use gtext.

Also, Apache is most likely faster anyway, in standard benchmark
environment. In Real Life (TM) environments however, where the number
of concurrent requests usually are higher resulting in high memory
usage and lots of context switching. To simulate this with
benchmarking, I used a 6.6MB large file and 100 simultaneous
requests. All the below is done on my Linux machine - a P166. Since
threads aren't very efficient on Linux, the threaded results are worse
than they would be on for example Solaris.

Apache:
Downloaded: 29,590,241 bytes in 325 files
wget -np -r -nv http://mouser:8099/bin/  2.03s user 2.92s system 8% cpu 58.205 total

Roxen:
Downloaded: 30,477,549 bytes in 339 files
wget -np -r -nv http://mouser/bin/  1.98s user 2.82s system 7% cpu 1:07.35 total


Apache Bench tests to demonstrate how Apache handles lots of current
connections:

6.6MB file, 100 concurrent:

Apache:

Max Load: 50+
Memory usage: 49 MB
Requests per seconds:   0.77
Transfer rate:          7857.77 kb/s

Connnection Times (ms)
           min   avg   max
Connect:    34    87    98
Total:   13300 73965 130131


Roxen (no threads):

Max Load: 1.45
Memory usage: 3.5 MB
Requests per seconds:   1.01
Transfer rate:          8223.46 kb/s

Connnection Times (ms)
           min   avg   max
Connect:   173   290   361
Total:   62662 82170 98854


Roxen (threads):

Max Load: 1.2
Memory usage: 3.5 MB
Requests per seconds:   1.13
Transfer rate:          8229.59 kb/s

Connnection Times (ms)
           min   avg   max
Connect:    66   164   242
Total:   64943 82093 88680


Apache, 3k file, 40 threads (with ptester):

Actual test time.. 22 seconds
Total requests.... 4668 (212 requests/sec)
Total bytes....... 14494140 (658824 bytes/sec)

Min Tx: 0.0129   Max Tx: 0.9449


Roxen (theads), dito:

Actual test time.. 30 seconds
Total requests.... 2093 (69 requests/sec)
Total bytes....... 6590857 (219695 bytes/sec)

Min Tx: 0.0252  Max Tx: 0.8264


Roxen (no threads), dito:

Actual test time.. 30 seconds
Total requests.... 2341 (78 requests/sec)
Total bytes....... 7371809 (245726 bytes/sec)

Min Tx: 0.0258  Max Tx: 0.6727


Roxen NG (experimental module), dito:

This is the accept_and_parse code that you might have heard of, which
is intergrated with Roxen using a module. It's still very experimental.

Actual test time.. 23 seconds
Total requests.... 10557 (459 requests/sec)
Total failed...... 0 (0 requests/sec)
Total bytes....... 33106752 (1439424 bytes/sec)

Min Tx: 0.0191  Max Tx: 0.3244


Roxen NG, dito but with keep-alive enabled (-k20):

Actual test time.. 26 seconds
Total requests.... 66003 (2538 requests/sec)
Total bytes....... 206985408 (7960977 bytes/sec)

Min Tx: 0.0150  Max Tx: 0.5653


Roxen NG, -k40:

Actual test time.. 29 seconds
Total requests.... 87904 (3031 requests/sec)
Total bytes....... 275666944 (9505756 bytes/sec)

Min Tx: 0.0335  Max Tx: 0.7906


-- 
David Hedbor




Dodatne informacije o seznamu Starilist