10 000 req/s: tpd2 - why it is so fast?

Igor Sysoev is at rambler-co.ru
Thu Oct 29 09:50:25 MSK 2009


On Thu, Oct 29, 2009 at 11:38:17AM +0900, Zev Blut wrote:

> Hello,
> 
> On 10/10/2009 01:42 AM, Igor Sysoev wrote:
> > On Fri, Oct 09, 2009 at 08:26:32PM +0400, Igor Sysoev wrote:
> >
> >> I have got these results via localhost:
> >>
> >> ab -n 30000 -c 10       ~8200 r/s
> >> ab -n 30000 -c 10 -k   ~20000 r/s
> >>
> >> This means that this microbenchmark tests mostly TCP connection
> >> establishment via localhost: keepalive is 2.4 faster.
> >
> > BTW, using embedded perl:
> >
> >      server {
> >          listen 8010;
> >          access_log  off;
> >
> >          location = /test {
> >              perl 'sub {
> >                 my $r = shift;
> >                 $r->send_http_header("text/html");
> >                 $r->print("<h1>Hello ", $r->variable("arg_name"), "</h1>");
> >                 return OK;
> >              }';
> >          }
> >      }
> >
> > "ab -n 30000 -c 10 -k" has got ~7800 r/s.
> 
> In case you are curious, John has posted an update
> comparing teepeedee2 vs the above perl module on his laptop.
> Here is the link:
> 
> http://john.freml.in/teepeedee2-vs-nginx

For some reason, he ran "ab -c1" instead of "ab -c10", while nginx may
run perl in 2 workers on Core2 Duo (if worker_processes are 2). I believe,
it will twice the benchmark result. Second, he still mosty tests TCP
connection establishment via localhost instead of server speed. Why
he can not run the benchmark with keepalive ?


-- 
Igor Sysoev
http://sysoev.ru/en/





More information about the nginx mailing list