Здраствуйте!
проблемка такова!
есть сетевое приложение которое создает 500 потоков, каждый поток использует отдно сетевое соединение. программа больше чем 350 потоков не создает, при условии что жедезо мощьное.
если запустить второй экземпляр программы то и она тоже свободно создает тоже 350 потоков.
вопрос: от чего зависит количество потоков? и как с этим бороться?
PS:количество открытых сокетов равно количеству потоков, никто ничего не хавает лишнего. я так понимаю что гдето есть какойто предел за который я цепляюсь, если кто занет что и как где посмотреть то буду признателен!!!
сервер нагрузки не чествует тоесть я так понимаю что его мона еще грузить и грузить!
Linux thread (от чего зависит максимальное количество потоков???)
Модератор: Модераторы разделов
-
nesk
- Сообщения: 2268
- Статус: Линукссаксовец
- ОС: MS Windows XP Home SP3
Re: Linux thread
покажите что выводит команда
cat /proc/sys/kernel/threads-max
и
ulimit -a
cat /proc/sys/kernel/threads-max
и
ulimit -a
Внимание: У меня под рукой нет машины с Linux. Я не использую эту ОС. Ответы я даю либо по памяти, либо мне помогает гугл. Тщательно читайте маны по тем командам и конфигурационным файлам, которые я упоминаю.
0xDEFEC8ED
0xDEFEC8ED
-
frp
- Сообщения: 1445
- ОС: Debian Squeeze
Re: Linux thread
А зачем такое количество потоков? Если ПО для сервера, то еще нормально (моя домашняя машинка начинала глючить после нескольких тысяч потоков), но если для десктопа, то пользователи слабых машин вас убьют (и правильно сделают
).
Если вам нужно отслеживать работу соккета (пришли данные, разорвалось соединение) - можно сделать poll, select, epoll (последний не рекомендую, он не работает на старых ядрах).
Если вам нужно отслеживать работу соккета (пришли данные, разорвалось соединение) - можно сделать poll, select, epoll (последний не рекомендую, он не работает на старых ядрах).
-
watashiwa_daredeska
- Бывший модератор
- Сообщения: 4038
- Статус: Искусственный интеллект (pre-alpha)
- ОС: Debian GNU/Linux
-
Rootlexx
- Бывший модератор
- Сообщения: 4471
- Статус: GNU generation
- ОС: Debian GNU/Linux
Re: Linux thread
Спорный совет. Да, epoll отсутствует в ядрах 2.4, но во-первых, существуют патчи, добавляющие его, во-вторых, он быстрее всех конкурентов даже на одном дескрипторе, а в-третьих, он прекрасно масштабируется в отличие от poll и особенно select.
-
frp
- Сообщения: 1445
- ОС: Debian Squeeze
Re: Linux thread
Патч - немного извращение (я, например, не стану ядро пересобирать или обновлять из-за какой-то одной программы если эта программа будет иметь аналоги, не требующие этого). Если автору epoll удобнее, то пусть сделает библиотеку для эмуляции epoll на старых ядрах (у меня сейчас ядро 2.6.26, но иногда мне приходится работать с ядрами 2.4.x).