Re: [patch 00/13] Syslets, "Threadlets", generic AIO support, v3

Evgeniy Polyakov
2007-03-01T15:54:10Z

On Thu, Mar 01, 2007 at 04:41:27PM +0100, Eric Dumazet (dada1@cosmosbay.com) wrote:
> On Thursday 01 March 2007 16:32, Eric Dumazet wrote:
> > On Thursday 01 March 2007 16:23, Evgeniy Polyakov wrote:
> > > They are there, since ab runs only 50k requests.
> > > If I change it to something noticebly more than 50/80k, ab crashes:
> > > # ab -c8000 -t 600 -n800000000 http://192.168.0.48/
> > > This is ApacheBench, Version 2.0.40-dev <$Revision: 1.146 $> apache-2.0
> > > Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
> > > Copyright 2006 The Apache Software Foundation, http://www.apache.org/
> > >
> > > Benchmarking 192.168.0.48 (be patient)
> > > Segmentation fault
> > >
> > > Are there any other tool suitable for such loads?
> > > I only tested httperf (which is worse, since it uses poll/select) and
> > > 'ab'.
> > >
> > > Btw, host machine runs 100% too, so it is possible that client side is
> > > broken (too).
> >
> > I have similar problems here, ab test just doesnt complete...
> >
> > I am still investigating with strace and tcpdump.
>
> OK... I found it.
>
> I had to loop on accept() :
>
> for (i=0; i<num; ++i) {
> if (event[i].data.fd == main_server_s) {
> do {
> err = evtest_callback_main(event[i].data.fd);
> } while (err != -1);
> }
> else
> err = evtest_callback_client(event[i].data.fd);
> }
>
> Or else we can miss an event forever...

The same here - I would just enable a debug to find it.

# ab -c8000 -n80000 http://192.168.0.48/
This is ApacheBench, Version 2.0.40-dev <$Revision: 1.146 $> apache-2.0
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Copyright 2006 The Apache Software Foundation, http://www.apache.org/

Benchmarking 192.168.0.48 (be patient)
Completed 8000 requests
Completed 16000 requests
Completed 24000 requests
Completed 32000 requests
Completed 40000 requests
Completed 48000 requests
Completed 56000 requests
Completed 64000 requests
Completed 72000 requests
Finished 80000 requests

Server Software: Apache/1.3.27
Server Hostname: 192.168.0.48
Server Port: 80

Document Path: /
Document Length: 3521 bytes

Concurrency Level: 8000
Time taken for tests: 18.250921 seconds
Complete requests: 80000
Failed requests: 0
Write errors: 0
Total transferred: 315691904 bytes
HTML transferred: 287074172 bytes
Requests per second: 4383.34 [#/sec] (mean)
Time per request: 1825.092 [ms] (mean)
Time per request: 0.228 [ms] (mean, across all concurrent
requests)
Transfer rate: 16891.86 [Kbytes/sec] received

Connection Times (ms)
min mean[+/-sd] median max
Connect: 137 884 481.1 920 3602
Processing: 567 888 163.6 985 997
Waiting: 47 455 238.2 439 921
Total: 765 1772 566.6 1911 4556

Percentage of the requests served within a certain time
(ms)
50% 1911
66% 1911
75% 1912
80% 1913
90% 1913
95% 1914
98% 4438
99% 4497
100% 4556 (longest request)
kano:~#

--
Evgeniy Polyakov