You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@mina.apache.org by Oleg Kalnichevski <ol...@apache.org> on 2006/08/01 19:51:04 UTC
Re: [jira] Commented: (DIRMINA-232) Performance of StreamIoHandler
degrades dramatically when the IoSession is kept alive between HTTP requests
On Tue, 2006-08-01 at 19:44 +0200, Emmanuel Lecharny wrote:
> Guys, seems to me that the Naggle Algorithm hit again :)
>
> When you reach around 25 req/s, whith an average of 40 ms per request means
> you didn't disabled it. Try to change that :
>
> SocketAcceptorConfig acceptorCfg = new SocketAcceptorConfig();
> ...
> ((SocketSessionConfig)(acceptorCfg.getSessionConfig())).setTcpNoDelay( true
> );
>
> I think it can change the performance *a lot* :)
>
> (or something similar. On linux, you can type : sudo /sbin/sysctl -w
> net.ipv4.tcp_abc=0)
>
> Emmanuel
>
Yes, indeed. That did the trick. Thanks a bunch.
Oleg
> On 8/1/06, Niklas Therning (JIRA) <ji...@apache.org> wrote:
> >
> > [
> > http://issues.apache.org/jira/browse/DIRMINA-232?page=comments#action_12424943]
> >
> > Niklas Therning commented on DIRMINA-232:
> > -----------------------------------------
> >
> > Hehe, just figured that out. Thanks! I see performance in line with what
> > you get:
> >
> > niklas@niklas:~$ ab2 -k -n 100 http://localhost:8080/index.html
> > This is ApacheBench, Version 2.0.41-dev <$Revision: 1.141 $> apache-2.0
> > Copyright (c) 1996 Adam Twiss, Zeus Technology Ltd,
> > http://www.zeustech.net/
> > Copyright (c) 1998-2002 The Apache Software Foundation,
> > http://www.apache.org/
> >
> > Benchmarking localhost (be patient).....done
> >
> >
> > Server Software: MINA
> > Server Hostname: localhost
> > Server Port: 8080
> >
> > Document Path: /index.html
> > Document Length: 10000 bytes
> >
> > Concurrency Level: 1
> > Time taken for tests: 3.994865 seconds
> > Complete requests: 100
> > Failed requests: 0
> > Write errors: 0
> > Keep-Alive requests: 100
> > Total transferred: 1011400 bytes
> > HTML transferred: 1000000 bytes
> > Requests per second: 25.03 [#/sec] (mean)
> > Time per request: 39.949 [ms] (mean)
> > Time per request: 39.949 [ms] (mean, across all concurrent requests)
> > Transfer rate: 247.07 [Kbytes/sec] received
> >
> > Connection Times (ms)
> > min mean[+/-sd] median max
> > Connect: 0 0 0.0 0 0
> > Processing: 4 39 4.7 39 69
> > Waiting: 0 0 3.1 0 30
> > Total: 4 39 4.7 39 69
> >
> > Percentage of the requests served within a certain time (ms)
> > 50% 39
> > 66% 40
> > 75% 40
> > 80% 40
> > 90% 40
> > 95% 40
> > 98% 40
> > 99% 69
> > 100% 69 (longest request)
> >
> > So, still not anywhere near the 8571.66 Kbytes/sec you get with native
> > HttpCore. I will try to do some profiling and see if I can see what happens.
> >
> >
> > > Performance of StreamIoHandler degrades dramatically when the IoSession
> > is kept alive between HTTP requests
> > >
> > -----------------------------------------------------------------------------------------------------------
> > >
> > > Key: DIRMINA-232
> > > URL: http://issues.apache.org/jira/browse/DIRMINA-232
> > > Project: Directory MINA
> > > Issue Type: Bug
> > > Affects Versions: 0.9.5
> > > Environment: Ubuntu Linux 6.06
> > > Reporter: Oleg Kalnichevski
> > >
> > > I have been observing a strange issue with MINA's StreamIoHandler while
> > benchmarking the performance of the HTTP server based on HttpCore and MINA.
> > The throughput of the StreamIoHandler tends to degrade dramatically when the
> > IoSession is kept alive between HTTP requests. The problem is perfectly
> > reproducible with a slightly modified version of HttpProtocolHandler that
> > ships with MINA (no external code is involved).
> >
> > --
> > This message is automatically generated by JIRA.
> > -
> > If you think it was sent incorrectly contact one of the administrators:
> > http://issues.apache.org/jira/secure/Administrators.jspa
> > -
> > For more information on JIRA, see: http://www.atlassian.com/software/jira
> >
> >
> >
>
>