Проблема "too many open files" при запуске большого числа потоков на CentOs - Форум успешных вебмастеров - GoFuckBiz.com
 
 
Форум успешных вебмастеров - GoFuckBiz.com

  Форум успешных вебмастеров - GoFuckBiz.com > Бизнес-решения > Скрипты, программы и технические решения
Дата
USD/RUB93.4409
BTC/USD64097.0602
Скрипты, программы и технические решения Обсуждаем скрипты, программы и новые технологии.

Закрытая тема
Опции темы Опции просмотра
Старый 28.01.2011, 00:07   #1
Black Box
Member
 
Регистрация: 26.02.2008
Сообщений: 40
Бабло: $4000
По умолчанию Проблема "too many open files" при запуске большого числа потоков на CentOs

Проблема возникает на CentOs, при запуске многопоточных программ на Java.

При параллельном запуске большого числа потоков начинает валиться эксепшн.
"java.net.socketexception too many open files"

Потоки через соксы ходят в интернет (простой URLConnecton). Все соединения я корректно закрываю.

Из того что нагуглил нашел только возможность выставить более большое ограничение на кол-во одновременно открытых файлов:
ulimit -n 4096
правда выставляю его, а оно через некоторое время опять в 1024 слетает.

Но проблема мне кажется в чем другом:
Видимо при открытии соединения через сокс, оно почему-то не сразу закрывается даже когда я его закрываю, а некоторое время висит.

Кто-нибудь сталкивался с подобной проблемой? Как ее разрешить?

Еще вроде помню что на Debian, гонял эту же прогу в кучу потоков, но проблемы такой не возникало...
Black Box вне форума  
Старый 28.01.2011, 01:42   #2
simba
Member
 
Регистрация: 11.09.2010
Сообщений: 56
Бабло: $7755
По умолчанию

ulimit -n 4096 работает только для текущей сессии.

у меня такая подобная фигня со стеком решена - я в файл запуска демона добавил строку уменьшающую нужный мне лимит.

запускать твою прогу надо из той же консоли (тот же залогиненый юзер) где делал ulimit
__________________
Блог Симбы
simba вне форума  
Старый 28.01.2011, 01:52   #3
Black Box
Member
 
Регистрация: 26.02.2008
Сообщений: 40
Бабло: $4000
ТС -->
автор темы ТС По умолчанию

Я из крона запускаю, прям в строке крона ulimit добавить можно?
И сколько можно ставить максимум ulimit?
Black Box вне форума  
Старый 28.01.2011, 02:15   #4
rushter
Senior Member
 
Регистрация: 28.11.2009
Сообщений: 1,800
Бабло: $299365
По умолчанию

vps ?
rushter вне форума  
Старый 28.01.2011, 02:19   #5
Black Box
Member
 
Регистрация: 26.02.2008
Сообщений: 40
Бабло: $4000
ТС -->
автор темы ТС По умолчанию

нет мощный сервак, с широким каналом.
хочется юзать его по полной, а уперлось все в несколько сотен потоков
Black Box вне форума  
Старый 28.01.2011, 02:19   #6
durman
Senior Member
 
Аватар для durman
 
Регистрация: 06.02.2008
Сообщений: 314
Бабло: $91645
По умолчанию

тож под centosoм сижу, но такой проблемы не встречал. а сколько соединений скрипт открывает на поток и/или сколько потоков ?
помониторь колличество командой
netstat -nt | grep ESTABLISHED | wc -l
durman вне форума  
Старый 28.01.2011, 02:57   #7
simba
Member
 
Регистрация: 11.09.2010
Сообщений: 56
Бабло: $7755
По умолчанию

попробуй в кроне через && написать:
ulimit -n 10000 && суперпрога

не получится - то в sh файл вписать и его на крон.
__________________
Блог Симбы
simba вне форума