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
=================
ro...@tar.tecsiel.it 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
====
ro...@tar.tecsiel.it 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 |


Attachment: 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
Libevent-users@monkey.org
http://monkeymail.org/mailman/listinfo/libevent-users

Reply via email to