Win a copy of The Java Performance Companion this week in the Performance forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

java.net.SocketException: Too many open files

 
vikas byn
Ranch Hand
Posts: 80
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
In my application, that deployed at linux, i need to open 30000-40000 sockets on virtual interfaces using threads.

I will get that exception after some time

com.jcraft.jsch.JSchException: java.net.SocketException: Too many open files
at com.jcraft.jsch.Util.createSocket(Util.java:386)
at com.jcraft.jsch.Session.connect(Session.java:186)
at com.jcraft.jsch.Session.connect(Session.java:154)
----------

I tried many system configuration like sysctl, ulimit and I also tried some java option like -Xms1024m -Xmx4096m -XX:MaxPermSize=2048m -XX:ThreadStackSize=4000
but i never get rid of that exceptions.

This exception has great impact on my application.

Please suggest me what should i do?

 
Tim Moores
Bartender
Posts: 2847
46
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
"Too many open files" is not a memory problem. 30000 open sockets will likely be a problem; are you really anticipating that many *simultaneous* connections?

You can increase the maximum number of open files using the "ulimit" command; it's a common thing to do on servers, although not that many.
 
Rob Spoor
Sheriff
Pie
Posts: 20546
57
Chrome Eclipse IDE Java Windows
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
If you really need 30,000 concurrent connections that sure is going to be one heck of a server. If you don't need them concurrently but overall, the problem may be you forgetting to close all connections when you're done with them.
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic