Thanks Peter, I was going to adjust those limits as well as the ulimit and the /proc limits too.
I was really worried about the number of threads. I was wondering if there was anyway to tune the number of threads that are created, some way to share threads between handlers. The memory that is used for each thread is likely to place a limit on the number of ports I can listen on. Regards Richard Peter Strand wrote: > I've had a similar issue on my linux box ( ubuntu 8.04 ). I use TCP > connections, though. > It was in fact due to security limits > > in the file /etc/security/limits, I added > > * soft nofile 100000 > * hard nofile 100000 > > This solved the issue. I've gone above 30k connections. > > /Strand > > > -----Original Message----- > From: Richard [mailto:[EMAIL PROTECTED] > Sent: Fri 2008-10-17 11:03 > To: [email protected] > Subject: tuning app with large number of UDP sessions > > Hi > > I am new to MINA and I have a slightly unusual application. I am hoping > that someone can give me some advice on the best way to optimise MINA's > performance. > > I have a server for a UDP protocol for which I have implemented a > handler, decoder, encoder etc. The server works just fine. > > But I want to run the protocol on a large number of UDP ports to support > lots of clients, each with their own port number for talking to my > server. (I would not have designed it this way, but I do not have > control of the client implementation). > > So I took the, possibly naive, approach of just looping over the > following code many times to start lots of listeners: > > > acceptor = new DatagramAcceptor(); > acceptor.getDefaultConfig().getSessionConfig().setReuseAddress(true); > > DefaultIoFilterChainBuilder chain = acceptor.getFilterChain(); > chain.addLast("", new LoggingFilter()); > chain.addLast("codec", new ProtocolCodecFilter( > new CodecFactory())); > acceptor.bind(new InetSocketAddress(udp_port), new > Handler(this)); > > The only other MINA options that I am setting are: > > ByteBuffer.setUseDirectBuffers(false); > ByteBuffer.setAllocator(new SimpleByteBufferAllocator()); > > Using this approach I am able to create 250 instances of my server > before I start to get errors. I think that the errors are either file > descriptor limits or memory problems because of the number of threads > that are being created ~500. > > Can anyone offer any advice on how I can best setup MINA to handle this > type of application? I would like to listen on 1000+ UDP ports. > > > Many thanks > > Richard > >
