Did you use the echo example? What about the CPU usage? What's your CPU model?
Did you add? ByteBuffer.setUseDirectBuffers(false); ByteBuffer.setAllocator(new SimpleByteBufferAllocator()); On 9/6/07, velytreuzien <[EMAIL PROTECTED]> wrote: > > > I'm running my application on the single cpu machine in the 100MBit LAN. > Other three workstations in the LAN are emulating multiple clients. > > The server uses custom protocol codec filter and custom handler. The > configuration is: manual thread model, one thread for SocketAcceptor, no > ExecutorFilter in the filterchain (because with the ExecutorFilter the > total > thread count increases rapidly up tho hundreds!! why?..) > > The fifth workstation in the LAN is running test application also > emulating > a client and measures server echo response timeout. > The average results are: > 1 client - 300 ms > 333 cleints - 400-500 ms > 666 clients - 1000-1500 ms > 1000 clients - strange fluctuations in 7-20 s range > > So we can clearly see the problem comes when the client count increases. > > After i've thoroughly done the profiling i've managed to eliminate all hot > spots from my own code (anyway, almost nothing changed) and then the > performance has stuck to the > sun.nio.ch.WindowsSelectorImpl$SubSelector.poll0(long, int, int[], int[], > int[], long) method taking 64% of total execution time. It's enourmous > because my own logic thread takes only 16% of total, and the asynchronous > writing thread (that responds to clients) takes 11%. > > The call tree descending to the mentioned method is: > java.lang.Thread.run() 71 % > java.util.concurrent.ThreadPoolExecutor$Worker.run() > 71 % > > java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Runnable) 71 % > > org.apache.mina.util.NamePreservingRunnable.run() 71 % > > org.apache.mina.transport.socket.nio.SocketIoProcessor$Worker.run() > 71 % > > sun.nio.ch.SelectorImpl.select(long) 70 % > > sun.nio.ch.SelectorImpl.lockAndDoSelect(long) 70 % > > sun.nio.ch.WindowsSelectorImpl.doSelect(long) 70 % > > sun.nio.ch.WindowsSelectorImpl$SubSelector.access$400 > (WindowsSelectorImpl$SubSelector) > 64 % > > > sun.nio.ch.WindowsSelectorImpl$SubSelector.poll() 64 % > > > sun.nio.ch.WindowsSelectorImpl$SubSelector.poll0(long, int, > int[], int[], int[], long) 64 % > > Is there any workaround? Maybe somehow configure SocketIoProcessor or > smth?.. How should it scale on a multiple cpu machine? > > Thanks for any kind of help in advance! > -- > View this message in context: > http://www.nabble.com/Performance-issue-with-selector-tf4390855s16868.html#a12518738 > Sent from the Apache MINA Support Forum mailing list archive at Nabble.com > . > >
