|
|
|
Сервер на большое количество соединений
|
|||
|---|---|---|---|
|
#18+
Пишу сервер для поддержиния большого количества GPRS TPC соединений на данный момент архитектура что-то вроде ставим таймаут в 1 секунду while(true) { 1. проверяем список соеденений которые присылают данные и добовляем их в очередь на чтение 2. все остальные сооеденения добовляем в список pReadSockets и pErrorSockets 3 . select(nfds+1,pReadSockets,NULL,pErrorSockets,&timeout); } есть пулл тредов которые берут соодинение из очереди читают данные и обрабатывают их всё бы хорошо только вот получается что если приходит первый пакет данных он уходит в очередь и читается тредом. А следующий пакет если не успел прийти пока первый пакет находится в очереди, то ему придётся ждать одну секунду т.к. в список pReadSockets он не добавлен. Если же его туда добавить то получится что select будет тутже вываливатся т.к. в буфере есть ещё данные. Пишу всё это дело под виндой но работать буд пол линухом, но это наверно к делу отношения не имеет :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.10.2004, 17:58 |
|
||
|
Сервер на большое количество соединений
|
|||
|---|---|---|---|
|
#18+
может тебе завести разные потоки для каждого соединения? если под linux, может тебе подойдет inetd? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.10.2004, 18:15 |
|
||
|
Сервер на большое количество соединений
|
|||
|---|---|---|---|
|
#18+
да я б завёл только вот в условии задичи чего стоит - много сеединений если быть точнее более 1000 и большинство из них просто так себе висят и ничего не делают, ждут короче. Если по треду на соодинение то ресурсы быстро иссякнут :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.10.2004, 18:28 |
|
||
|
Сервер на большое количество соединений
|
|||
|---|---|---|---|
|
#18+
если весят и ничего не делают, может провести исследование? написать прикладуху, которая делает тышшу потоков и посмотреть сколько ресурсов ей надо.... мне кажется, вполне приемлимые объемы, если они в sleep уходить будут ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.10.2004, 19:34 |
|
||
|
|

start [/forum/topic.php?fid=57&fpage=429&tid=2034279]: |
0ms |
get settings: |
5ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
14ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
35ms |
get tp. blocked users: |
1ms |
| others: | 195ms |
| total: | 276ms |

| 0 / 0 |
