Hello,

Robert Greig wrote:

In my tests the throughput in our application is more than doubled
when using our thread pool as compared with the default MINA one.

Impressive.


If other people are interested in trying our filter I'd be very
interested in seeing the performance they get.

I've adopted Asyncweb (a Mina base HTTP server) do use your thread pool and tried to run some benchmarks against it, although it works, when I fire the load tester I get lots of errors.

Read errors:

ERROR [SocketAcceptorIoProcessor-0.0] 17 Oct 2006 17:02:24 - Exception event constructed: java.io.IOException: Connection reset by peer
java.io.IOException: Connection reset by peer
        at sun.nio.ch.FileDispatcher.read0(Native Method)
        at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:21)
        at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:233)
        at sun.nio.ch.IOUtil.read(IOUtil.java:206)
        at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:236)
at org.apache.mina.transport.socket.nio.SocketIoProcessor.read(SocketIoProcessor.java:272) at org.apache.mina.transport.socket.nio.SocketIoProcessor.process(SocketIoProcessor.java:246) at org.apache.mina.transport.socket.nio.SocketIoProcessor.access$4(SocketIoProcessor.java:235) at org.apache.mina.transport.socket.nio.SocketIoProcessor$Worker.run(SocketIoProcessor.java:564)
        at 
org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:43)
        at java.lang.Thread.run(Thread.java:619)
INFO [SocketAcceptorIoProcessor-0.0] 17 Oct 2006 17:02:24 - Destroy called on PoolingFilter AsynchronousWriteFilter INFO [SocketAcceptorIoProcessor-0.0] 17 Oct 2006 17:02:24 - Destroy called on PoolingFilter AsynchronousReadFilter

Write errors:

ERROR [SocketAcceptorIoProcessor-0.0] 17 Oct 2006 18:12:13 - Exception event constructed: java.io.IOException: Broken pipe
java.io.IOException: Broken pipe
        at sun.nio.ch.FileDispatcher.write0(Native Method)
        at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:29)
        at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:104)
        at sun.nio.ch.IOUtil.write(IOUtil.java:75)
        at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:334)
at org.apache.mina.transport.socket.nio.SocketIoProcessor.doFlush(SocketIoProcessor.java:487) at org.apache.mina.transport.socket.nio.SocketIoProcessor.doFlush(SocketIoProcessor.java:419) at org.apache.mina.transport.socket.nio.SocketIoProcessor.access$5(SocketIoProcessor.java:380) at org.apache.mina.transport.socket.nio.SocketIoProcessor$Worker.run(SocketIoProcessor.java:572) at org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:43)
        at java.lang.Thread.run(Thread.java:619)


These errors don't show up with the default thread pool.
Probably due to this errors I didn't get any throughput increase ... however as a quick experiment I commented out the:
session.getFilterChain().fireExceptionCaught( session, e );
lines in the SocketIoProcessor and I did get a slight throughput increase with lower CPU utilization.

--
Luis Neves

Reply via email to