I'm not seeing the windows problems, I used to have many problems on
windows using jdk1.4, but since 1.5 I have no problems at all. I do have a
brand new machine, so maybe there is some windows patch on it that I
didn't have before, other than that I can't think of anything.

I'm showing almost identical results between NIO and blocking IO on both
windows and FC4.

here is an output from my test run on windows, 100,000 requests on each
connector

I still have one thing to improve, to use an java.util.concurrent
Exchanger  on the read that registers back with the Selector and handles
the hand off between two threads correctly.

C:\development\covalent\ers\apache2.0\bin>java -version
java version "1.5.0_06"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_06-b05)
Java HotSpot(TM) Client VM (build 1.5.0_06-b05, mixed mode, sharing)

--from tomcat startup, two connectors starting up,.
Jun 26, 2006 3:16:53 PM org.apache.coyote.http11.Http11Protocol start
INFO: Starting Coyote HTTP/1.1 on http-8080
Jun 26, 2006 3:16:53 PM org.apache.coyote.http11.Http11NioProtocol start
INFO: Starting Coyote HTTP/1.1 on http-8081
Jun 26, 2006 3:16:53 PM org.apache.catalina.startup.Catalina start
INFO: Server startup in 1828 ms


C:\development\covalent\ers\apache2.0\bin>ab -n 100000 -c 20 -k 
http://127.0.0.1:8081/tomcat.gif
This is ApacheBench, Version 2.0.41-dev <$Revision: 1.2 $> 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 127.0.0.1 (be patient)
Completed 10000 requests
Completed 20000 requests
Completed 30000 requests
Completed 40000 requests
Completed 50000 requests
Completed 60000 requests
Completed 70000 requests
Completed 80000 requests
Completed 90000 requests
Finished 100000 requests


Server Software:        Apache-Coyote/1.1
Server Hostname:        127.0.0.1
Server Port:            8081

Document Path:          /tomcat.gif
Document Length:        1934 bytes

Concurrency Level:      20
Time taken for tests:   16.734375 seconds
Complete requests:      100000
Failed requests:        0
Write errors:           0
Keep-Alive requests:    100000
Total transferred:      216400000 bytes
HTML transferred:       193400000 bytes
Requests per second:    5975.72 [#/sec] (mean)
Time per request:       3.347 [ms] (mean)
Time per request:       0.167 [ms] (mean, across all concurrent requests)
Transfer rate:          12628.38 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    0   0.0      0       0
Processing:     0    3   6.3      0      46
Waiting:        0    3   6.3      0      46
Total:          0    3   6.3      0      46

Percentage of the requests served within a certain time (ms)
  50%      0
  66%      0
  75%      0
  80%     15
  90%     15
  95%     15
  98%     15
  99%     15
 100%     46 (longest request)

C:\development\covalent\ers\apache2.0\bin>ab -n 100000 -c 20 -k 
http://127.0.0.1:8080/tomcat.gif
This is ApacheBench, Version 2.0.41-dev <$Revision: 1.2 $> 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 127.0.0.1 (be patient)
Completed 10000 requests
Completed 20000 requests
Completed 30000 requests
Completed 40000 requests
Completed 50000 requests
Completed 60000 requests
Completed 70000 requests
Completed 80000 requests
Completed 90000 requests
Finished 100000 requests


Server Software:        Apache-Coyote/1.1
Server Hostname:        127.0.0.1
Server Port:            8080

Document Path:          /tomcat.gif
Document Length:        1934 bytes

Concurrency Level:      20
Time taken for tests:   16.937500 seconds
Complete requests:      100000
Failed requests:        0
Write errors:           0
Keep-Alive requests:    98218
Total transferred:      216397582 bytes
HTML transferred:       193405802 bytes
Requests per second:    5904.06 [#/sec] (mean)
Time per request:       3.388 [ms] (mean)
Time per request:       0.169 [ms] (mean, across all concurrent requests)
Transfer rate:          12476.75 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    0   0.3      0      15
Processing:     0    3  16.8      0     343
Waiting:        0    3  16.7      0     343
Total:          0    3  16.9      0     343

Percentage of the requests served within a certain time (ms)
  50%      0
  66%      0
  75%      0
  80%      0
  90%     15
  95%     15
  98%     15
  99%     62
 100%    343 (longest request)

C:\development\covalent\ers\apache2.0\bin>

> I haven't tested Filip's connector yet, but that's also my experience with
> the AJP/NIO connector:  NIO is pretty much useless on Windows.

> > -----Original Message-----
> > From: Remy Maucherat [mailto:[EMAIL PROTECTED]
> > Sent: Monday, June 26, 2006 4:58 AM
> > To: Tomcat Developers List
> > Subject: Re: NIO vs BIO speed
> >
> > Filip Hanik - Dev Lists wrote:
>> > > yes, I think they are looking pretty good. And I am fairly
> > confident in
>> > > this new code, as most of it, is old tested APR code.
> >
> > (Of course, there hasn't been any new changes, so it's not a
> > surprise it
> > not working any better for me; I did reboot in the meantime,
> > though, and
> > I am running JRE 1.5.0_06)
> >
> > Performance with NIO is still bad for me (3 times slower than
> > the other
> > connectors) with /usr/sbin/ab.exe -n 5000 -c 20 -k
> > http://127.0.0.1:8081/tomcat.gif. Throughput seems to vary
> > wildly during
> > the test. With /usr/sbin/ab.exe -n 5000 -c 20
> > http://127.0.0.1:8081/tomcat.gif (no keepalive), performance is
> > horrible, and kills the poller thread after a few hundred iterations
> > with the exception I reported earlier:
> > Exception in thread "http-8081-Poller-0"
> > java.lang.NullPointerException
> >          at
> > sun.nio.ch.WindowsSelectorImpl$FdMap.remove(Unknown Source)
> >          at
> > sun.nio.ch.WindowsSelectorImpl$FdMap.access$3000(Unknown Source)
> >          at sun.nio.ch.WindowsSelectorImpl.implDereg(Unknown Source)
> >          at
> > sun.nio.ch.SelectorImpl.processDeregisterQueue(Unknown Source)
> >          at sun.nio.ch.WindowsSelectorImpl.doSelect(Unknown Source)
> >          at sun.nio.ch.SelectorImpl.lockAndDoSelect(Unknown Source)
> >          at sun.nio.ch.SelectorImpl.select(Unknown Source)
> >          at
> > org.apache.tomcat.util.net.NioEndpoint$Poller.run(NioEndpoint.
> > java:1189)
> >          at java.lang.Thread.run(Unknown Source)
> >
> > Rémy
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]
> >
> >
> >



This message is intended only for the use of the person(s) listed above as
the intended recipient(s), and may contain information that is PRIVILEGED
and CONFIDENTIAL.  If you are not an intended recipient, you may not read,
copy, or distribute this message or any attachment. If you received this
communication in error, please notify us immediately by e-mail and then
delete all copies of this message and any attachments.

In addition you should be aware that ordinary (unencrypted) e-mail sent
through the Internet is not secure. Do not send confidential or sensitive
information, such as social security numbers, account numbers, personal
identification numbers and passwords, to us via ordinary (unencrypted)
e-mail.


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



-- No virus found in this incoming message. Checked by AVG Free Edition.
Version: 7.1.394 / Virus Database: 268.9.3/374 - Release Date: 6/23/2006


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to