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 |
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