Проблема "too many open files" при запуске большого числа потоков на CentOs
Проблема возникает на CentOs, при запуске многопоточных программ на Java.
При параллельном запуске большого числа потоков начинает валиться эксепшн.
"java.net.socketexception too many open files"
Потоки через соксы ходят в интернет (простой URLConnecton). Все соединения я корректно закрываю.
Из того что нагуглил нашел только возможность выставить более большое ограничение на кол-во одновременно открытых файлов:
ulimit -n 4096
правда выставляю его, а оно через некоторое время опять в 1024 слетает.
Но проблема мне кажется в чем другом:
Видимо при открытии соединения через сокс, оно почему-то не сразу закрывается даже когда я его закрываю, а некоторое время висит.
Кто-нибудь сталкивался с подобной проблемой? Как ее разрешить?
Еще вроде помню что на Debian, гонял эту же прогу в кучу потоков, но проблемы такой не возникало...
|