Вниз
Скачать: CL | DM;

Наименьшая из зол - вопрос по скорости/ресурсам для сервера   Найти похожие ветки 

 
SV ©   (2002-03-23 09:38) [0]

Hi, мастера, мне нужен совет. Надо сделать сервер для 40-50 клиентов. Есть 3 варианта:
1) Каждому клиенту свой поток
(т.к. распред. поцессорного времени по потокам-> моему процессу больше времени, но огоромное число переключений тормозит систему)
2) Всё через перекрытый ввод-вывод или select или AsyncEvent, etc
(На счет произв. не знаю, но одному 1 потоку кант времени на одного)
3) 1 поток на n клиентов
(компромисное решение)

WaitForMultipleMastersHelp(INFINITE)
/SV/


 
paul_shmakov ©   (2002-03-25 01:39) [1]

microsoft советует использовать везде асинхронный ввод/вывод, что позволяет достичь максимальной производительности с минимальным overhead-ом. хотя программировать его несколько сложнее, чем синхронный ввод/вывод.

кстати, по первому пункту не соглашусь в "но огоромное число переключений тормозит систему": обычно при синхронной обработке, например, тех же сокетов (т.е. работе с сокетами в блокирующем режиме) потоки большую часть времени простаивают в ожидании появления данных. так что количество переключений контекстов не так уж велико.

лучший вариант - это использовать асинхронный ввод/вывод и динамический пул потоков, количество потоков в котором будет менятся в зависимости от нагрузки на сервер. но не стоит делать большое количество потоков в пуле - 3-4 - это максимум.
ну а при низкой нагрузке - 1-2.

в пуле - рабочие потоки, которые и будут выполнять полезную работу. еще один поток - диспетчер, принимающий информацию об асинхронных операциях и помещающий эту информацию в очередь для обработки рабочими потоками.


 
SV ©   (2002-03-27 21:37) [2]

Вот тут ещё информацию дали: сервер должен на W2000 работать-> можно порты завершения использовать. Там как раз пулы. Как считаете - решение подходящее?



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.009 c
8-30916
X-Boris
2002-01-21 20:33
2002.06.10
Амплитуда звука и VediaPlayer


1-30753
Great DAN
2002-05-30 13:48
2002.06.10
Как переслать данные или содержимое переменной


6-30956
ввв
2002-04-01 20:18
2002.06.10
mapireadmail


1-30798
Kaldr
2002-05-31 11:25
2002.06.10
Speedbutton не поднимается


4-31037
GrandGEO
2002-04-07 15:59
2002.06.10
Печать в Delphi




   Наверх