netty based http server performance 15K/sec

Jamie McCrindle jamiemccrindle at gmail.com
Thu Aug 11 07:00:26 EDT 2011


It's worth saying that at 20000 requests and 200 threads, a default
Mac OS X 10.6 installation falls apart as it runs out of open files,
sockets get stuck in TIME_WAIT etc. so there is definitely an OS
tuning component to running a test like this.

On Thu, Aug 11, 2011 at 9:49 AM, Jamie McCrindle
<jamiemccrindle at gmail.com> wrote:
> Hi Jaymin,
>
> Here are the results on my machine. It's Mac OS X 10.6, MBP 2.66 GHZ
> i7. I had to drop the numbers to 10000 requests and 100 threads with
> the default Mac config. This is with the snoop HttpServer run as
> follows:
>
> mvn -Dexec.mainClass=org.jboss.netty.example.http.snoop.HttpServerDmaven.test.skip=true
> compile -Dskip-enforce=true exec:java
>
> It may be worth dropping the number of requests you're testing with as
> well as the concurrency.
>
> headline figure is: Requests per second:    13070.43 [#/sec] (mean)
>
> ab -n 10000 -c 100 "http://localhost:8080/"
> This is ApacheBench, Version 2.3 <$Revision: 655654 $>
> Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
> Licensed to The Apache Software Foundation, http://www.apache.org/
>
> Benchmarking localhost (be patient)
> Completed 1000 requests
> Completed 2000 requests
> Completed 3000 requests
> Completed 4000 requests
> Completed 5000 requests
> Completed 6000 requests
> Completed 7000 requests
> Completed 8000 requests
> Completed 9000 requests
> Completed 10000 requests
> Finished 10000 requests
>
>
> Server Software:
> Server Hostname:        localhost
> Server Port:            8080
>
> Document Path:          /
> Document Length:        230 bytes
>
> Concurrency Level:      100
> Time taken for tests:   0.765 seconds
> Complete requests:      10000
> Failed requests:        5
>   (Connect: 5, Receive: 0, Length: 0, Exceptions: 0)
> Write errors:           0
> Total transferred:      2901160 bytes
> HTML transferred:       2300920 bytes
> Requests per second:    13070.43 [#/sec] (mean)
> Time per request:       7.651 [ms] (mean)
> Time per request:       0.077 [ms] (mean, across all concurrent requests)
> Transfer rate:          3703.07 [Kbytes/sec] received
>
> Connection Times (ms)
>              min  mean[+/-sd] median   max
> Connect:        0    1   0.6      1       7
> Processing:     0    3   2.2      3      14
> Waiting:        0    3   2.0      2      13
> Total:          1    4   2.2      4      14
>
> Percentage of the requests served within a certain time (ms)
>  50%      4
>  66%      4
>  75%      5
>  80%      5
>  90%      7
>  95%      9
>  98%     11
>  99%     12
>  100%     14 (longest request)
>
> On Thu, Aug 11, 2011 at 9:06 AM, Jaymin Shah <sjaymin at gmail.com> wrote:
>> I had tried it never got throughput more then 3K.
>> So question is can Netty be able to achieve mentioned throughput more then
>> 15K as per http://www.olympum.com/java/quick-benchmark-java-nodejs/ ?
>>
>>
>> On Thu, Aug 11, 2011 at 1:28 PM, Mailing List SVR <lists at svrinformatica.it>
>> wrote:
>>>
>>> Il 11/08/2011 09:34, Jaymin Shah ha scritto:
>>>
>>> Please find below command I had used and its output.
>>> Command#
>>> ab -n 20000 -c 200  http://localhost:8080/
>>>
>>> please try with different concurrency for example -c 5, -c 10 and so on
>>> and see if the result change,
>>>
>>> Nicola
>>>
>>>
>>> Output#
>>> This is ApacheBench, Version 2.3 <$Revision: 655654 $>
>>> Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
>>> Licensed to The Apache Software Foundation, http://www.apache.org/
>>> Benchmarking localhost (be patient)
>>> Completed 2000 requests
>>> Completed 4000 requests
>>> Completed 6000 requests
>>> Completed 8000 requests
>>> Completed 10000 requests
>>> Completed 12000 requests
>>> Completed 14000 requests
>>> Completed 16000 requests
>>> Completed 18000 requests
>>> Completed 20000 requests
>>> Finished 20000 requests
>>>
>>> Server Software:
>>> Server Hostname:        localhost
>>> Server Port:            8080
>>> Document Path:          /
>>> Document Length:        230 bytes
>>> Concurrency Level:      200
>>> Time taken for tests:   8.438 seconds
>>> Complete requests:      20000
>>> Failed requests:        0
>>> Write errors:           0
>>> Total transferred:      5800000 bytes
>>> HTML transferred:       4600000 bytes
>>> Requests per second:    2370.09 [#/sec] (mean)
>>> Time per request:       84.385 [ms] (mean)
>>> Time per request:       0.422 [ms] (mean, across all concurrent requests)
>>> Transfer rate:          671.22 [Kbytes/sec] received
>>> Connection Times (ms)
>>>               min  mean[+/-sd] median   max
>>> Connect:        0    0   6.1      0     507
>>> Processing:     5   83  97.4     63    1099
>>> Waiting:        3   52  76.5     41     598
>>> Total:          5   83  97.7     64    1099
>>> Percentage of the requests served within a certain time (ms)
>>>   50%     64
>>>   66%     70
>>>   75%     77
>>>   80%     80
>>>   90%    101
>>>   95%    116
>>>   98%    587
>>>   99%    597
>>>  100%   1099 (longest request)
>>>
>>> On Thu, Aug 11, 2011 at 9:36 AM, News Aanad <news.anand11 at gmail.com>
>>> wrote:
>>>>
>>>>
>>>> ---------- Forwarded message ----------
>>>> From: Jamie McCrindle <jamiemccrindle at gmail.com>
>>>> Date: Wed, Aug 10, 2011 at 11:53 AM
>>>> Subject: Re: netty based http server performance 15K/sec
>>>> To: Netty Users <netty-users at lists.jboss.org>
>>>>
>>>>
>>>> Can you send the apache bench command line you used along with the
>>>> output?
>>>>
>>>> On Aug 10, 2011 8:09 AM, "Jaymin Shah" <sjaymin at gmail.com> wrote:
>>>> > Hi,
>>>> >
>>>> > It was claimed that netty based http server can handle *15693.29
>>>> > [#/sec]
>>>> > request* ref# http://www.olympum.com/java/quick-benchmark-java-nodejs/
>>>> >
>>>> > I have tried using org.jboss.netty.example.http.snoop but never got
>>>> > performance beyond* 2285.58 [#/sec] (mean)*. I am using Windows 7 -
>>>> > 64-bit
>>>> > operating system with 4GB RAM and Intel core i5 with 2.40GHz
>>>> >
>>>> > Can someone please share their experience how I can achieve mentioned
>>>> > performance.
>>>> >
>>>> > regards,
>>>> > Jaymin
>>>>
>>>> _______________________________________________
>>>> netty-users mailing list
>>>> netty-users at lists.jboss.org
>>>> https://lists.jboss.org/mailman/listinfo/netty-users
>>>>
>>>
>>>
>>>
>>> _______________________________________________
>>> netty-users mailing list
>>> netty-users at lists.jboss.org
>>> https://lists.jboss.org/mailman/listinfo/netty-users
>>>
>>> _______________________________________________
>>> netty-users mailing list
>>> netty-users at lists.jboss.org
>>> https://lists.jboss.org/mailman/listinfo/netty-users
>>
>>
>> _______________________________________________
>> netty-users mailing list
>> netty-users at lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/netty-users
>>
>



More information about the netty-users mailing list