Максимально число сокетов, опрашиваемых select(), Максим Мороз, 03-Июл-02, 12:31 [смотреть все]Столкнулся с тем, что FD_SETSIZE==1024, соответственно больше сокетов опрашивать не получается. Есть ли какие пути решения этой проблемы? Требуется открывать на каждого клиента порядка 6-10 сокетов, учитывая, что клиентов на один сервер планируется порядка 1000 (2-3 :)) ), то получается полная финя :)) Что посоветует многоуважаемый all? Сейчас я пытаюсь разбить клиентов на группы, чтобы каждую группу обслуживал свой процесс или нить.И еще вопрос сильно ли будет грузиться VM Linux,FreeBSD и Solaris, если будет вертеться 1000-2000 потоков(threads). Есть ли какие-нить грабли? |
- RE: Максимально число сокетов, опрашиваемых select(), Арлекин, 15:20 , 03-Июл-02 (1)
Могу сказать только по соляре. >Столкнулся с тем, что FD_SETSIZE==1024, соответственно больше сокетов опрашивать не получается. Есть >ли какие пути решения этой проблемы? У сантехников на сайте полно доки и среди админских руководств есть инструкция по настройке ядра. Что-то типа "Tuning parameters". Там написано, как можно изменить параметры соляркиного ядра через установки /etc/system. Рой там. Если эту цифру и можно поменять, то только так. >Требуется открывать на каждого клиента порядка 6-10 сокетов, учитывая, что клиентов на один сервер планируется порядка >1000 (2-3 :)) ), то получается полная финя :)) Что посоветует >многоуважаемый all? Сейчас я пытаюсь разбить клиентов на группы, чтобы каждую >группу обслуживал свой процесс или нить. > >И еще вопрос сильно ли будет грузиться VM Linux,FreeBSD и Solaris Все зависит от железа. На 2х процессорном Sun Fire 800 и выше видимо будет работать, но лучше таки доку почитать. >, если будет вертеться 1000-2000 потоков(threads). Есть ли какие-нить грабли?
- RE: Максимально число сокетов, опрашиваемых select(), Максим Мороз, 16:50 , 03-Июл-02 (2)
>Могу сказать только по соляре. >>Столкнулся с тем, что FD_SETSIZE==1024, соответственно больше сокетов опрашивать не получается. Есть >>ли какие пути решения этой проблемы? >У сантехников на сайте полно доки и среди админских руководств есть инструкция >по настройке ядра. Что-то типа "Tuning parameters". Там написано, как можно >изменить параметры соляркиного ядра через установки /etc/system. Рой там. Если эту >цифру и можно поменять, то только так. спасибо, поищу... Скорее всего не прокатит, потому как fdset - битовый массив :((>>Требуется открывать на каждого клиента порядка 6-10 сокетов, учитывая, что клиентов на один сервер планируется порядка >>1000 (2-3 :)) ), то получается полная финя :)) Что посоветует >>многоуважаемый all? Сейчас я пытаюсь разбить клиентов на группы, чтобы каждую >>группу обслуживал свой процесс или нить. >> >>И еще вопрос сильно ли будет грузиться VM Linux,FreeBSD и Solaris >Все зависит от железа. На 2х процессорном Sun Fire 800 и выше >видимо будет работать, но лучше таки доку почитать. Ходят слухи, что схожая задача вертелась на однопроцессорной интеловской машине. Сами треды не ресурсоемкие. Интересен оверхед VM. >>, если будет вертеться 1000-2000 потоков(threads). Есть ли какие-нить грабли?
- RE: Максимально число сокетов, опрашиваемых select(), MaxZinal, 00:01 , 07-Июл-02 (3)
А насколько критична "мгновенность" отклика? Если задержка порядка 50 мс допустима, то можно устроить ожидание с таймаутом по части дескрипторов, потом по другой части и так далее, пока все не обойдём.Вообще сходные поблемы решаются в компоненте "Реактор" мультиплатформенной библиотеки ACE (). Кроме того, полезно действительно заглянуть на docs.sun.com. Там есть действительно толковые и обстоятельные руководства по программированию соответствующих софтин. Естественно, с ориентацией на Solaris, но поняв общий подход, можно заняться уточнением деталей на других осях...
|