On 8 July 10:58 2009 Adrian Chadd spoke: | | I also "taught" apachebench-1.3 about ipv6 and libevent: | | http://code.google.com/p/apachebench-adrian/
Hi Adrian,
I was unware of your software before your reading your mail.
Thanks for sharing your work.
This was also my initial idea, a dirty and quick hack on the
original 'ab' but I preferred the 'by the ground' way.
I would never started 'lb' if at the time I had some vague idea
of your project.
In what follows:
'ab' is the original Apache tool
(select-based and HTTP format/decode hand-made)
'cb' is your version of 'ab'
(epoll-based on linux via libevent and HTTP format/decode hand-made)
'lb' is my full libevent-tool
(epoll-based on linux via libevent and HTTP format/decode via libevent)
I called your version 'cb' to distinguish it from the original 'ab'.
|
| Its .. bloody fast.
|
"If you can't measure it, you can't improve it"
Lord Kelvin
Have you checked it against the original Apache version?
I will attach a shell script I have just finished
in order to compare how fast is 'lb' with respect
to 'ab'. I have extended it to include your version too.
I also put it at: http://lb.tecsiel.it/Download/bench-lb.sh
The shell script ran on my Linux box first against
the standard Apache installation on the same machine,
and then using another Linux box on my LAN again
against the standar Apache installation.
Each execution was made of a fixed number of tests (50)
with a random # of request (up to 15000) and
a random # of concurrency (up to 40) per test.
You can see that 'cb' is as fast as 'ab', while 'lb'
is slower than both of them, contrary to all my expectations.
I checked and checked my code and until now I haven't found
a valid reason of such bad performances. I do not anything
of time-consuming in 'lb' except to insist to add timers and handle
events as fast as I can.
Contrary to 'ab' and 'cb' (both adopt the format/send/receive/decode
paradigm), 'lb' uses the libevent-based HTTP library for
formatting/decoding for the sake of uniformity in libevent adoption.
<QUESTION>
So my big question for you and the list is:
it the HTTP client-side part of the libevent so much performant
as the server-side? are the HTTP-client functions usable
for applications with strictly performances requirements?
</QUESTION>
Is someone out of here able to tell me what is so wrong in 'lb'
design to perform so bad with respect to other tools?
|
| Adrian
|
/rocco
ps: here the results of a simple test session as I described before.
Note: the number of tests counted in the averages could less of those
started becuase sometime the web server does not respond so the
tools did not produced a parseable output.
Ethernet loopback
=================
[email protected] 4086> sh bench-lb.sh -t 50 -u http://tar:80/
bench-lb.sh ver. 0.1.0 rel. 2009 Jul 08
running on tar.netikos.com on Wed Jul 8 18:03:47 CEST 2009 by rocco
Up to # 50 tests to http://tar:1234/ with random # of request (up to 15000) per
test and random # of concurrency (up to 40)
.......................
test # 50 of 50 running -- ab -n 5050 -c 8 http://tar:80/ => 1791 227520
test # 50 of 50 running -- cb -n 5050 -c 8 http://tar:80/ => 1847 227520
test # 50 of 50 running -- lb -n 5050 -c 8 http://tar:80/ => 1127 227250
*** Req/sec average at the end of test #50 ***
ab - 1671.1 [#/sec] in 30 tests | cb - 1679.6 [#/sec] in 30 tests | lb -
1050.8 [#/sec] in 30 tests |
LAN
====
[email protected] 4165> sh bench-lb.sh -t 50 -u http://ruok:80/
.......................
test # 50 of 50 running -- ab -n 12883 -c 26 http://ruok:80/ => 1041 579735
test # 50 of 50 running -- cb -n 12883 -c 26 http://ruok:80/ => 1018 580725
test # 50 of 50 running -- lb -n 12883 -c 26 http://ruok:80/ => 382 579735
*** Req/sec average at the end of test #50 ***
ab - 1035.5 [#/sec] in 50 tests | cb - 1018.2 [#/sec] in 50 tests | lb -
383.1 [#/sec] in 50 tests |
bench-lb.sh
Description: a shell script to compare how fast some benchmark tools are
-- Rocco Carbone mail-to: <rocco /at/ ntop /dot/ org> Pisa Italy Life is in the details In other words, you are welcome to use, share and improve me. You are forbidden to forbid anyone else to use, share and improve what I gave you.
_______________________________________________ Libevent-users mailing list [email protected] http://monkeymail.org/mailman/listinfo/libevent-users
