Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.08.15;
Скачать: CL | DM;

Вниз

Кто юзал Indy при большом к-ве клиентов на сервере?   Найти похожие ветки 

 
alienserg   (2004-06-14 02:19) [0]

Какое количество тредов/connections допустимо на сервере?
Авторы Indy говорят, что поскольку Indy сокеты работают в blocking mode, то неактивный тред практически не потребляет ресурсов и важно в основном количество активно работающих тредов.
У кого есть какой опыт на этот счет?
Есть ли выигрыш в этом смысле от перехода с Indy 9, который не может работать с fibers, к Indy 10, который вроде может?
Аппликация, которую делаю - что-то типа ICQ, т.е. к серверу коннектятся и в основном сокет простаивает, изредка получая сообщения от сервера о прибывших/ушедших клиентах, а переговоры идут напрямую peer2peer.


 
alienserg   (2004-06-14 02:20) [1]

Я имею ввиду TIdTcpServer и connections незакрывающиеся длительное время.


 
Денис   (2004-06-14 09:01) [2]

Привет! Сорри на твой вопрос ответа не знаю, а ты мне не подскажешь? буду очень рад. а то такое ощущение, что ответа не занют даже разработчики Инди    http://delphimaster.net/view/6-1087152399/


 
alexvir   (2004-06-14 09:34) [3]

Похожая проблема. С инди решил не работать и остановился на стандартном TTcpServer. Инди показался перегруженным ненужными функциями.
Один мой знакомый (уважаемый человек, хотя не программист), говорит, что больше 40 коннектов сервер не вытянет... в виду архитектуры винды (имеется в виду именно нити), мол они существенно начнут тормозить работу системы.
В общем я с ним не согласен. Все подтверждается на практике...


 
Erik1   (2004-06-14 10:42) [4]

Тоесть будеш делать свой механизм Super Server? Когда имеется пул тредов, а ты переключаеш контенты для выполнения запросов клиентов? В любом случае коннект держать придется! А это уже отделная нить. Если у тебя неболее 100 конектов одновремено, то незанимайся ерундой, постав Indy и все у тебя будет работать. У меня 1000 тредов работатла довольно сностно, но это была не сетевая задача.
 Если количество соеденений очень большое, то можеш подумать о UDP.


 
alienserg   (2004-06-14 16:28) [5]

alexvir   (14.06.04 09:34) [3]
Инди показался перегруженным ненужными функциями.
То, что в Indy масса всего, это не есть недостаток. Ненужное тебе может вполне оказаться нужным другому. Indy изначально заточен под многотредовось и использует blocking mode. Indy по любому производительнее чем стандартный TTcpServer. В конференции приводили случаи, когда он легко держит 500 активных(по которым идет активная работа) коннектов.

Erik1   (14.06.04 10:42) [4]
Тоесть будеш делать свой механизм Super Server? Когда имеется пул тредов, а ты переключаеш контенты для выполнения запросов клиентов?
Нет, Indy не может этого делать вроде. 1 коннект - 1 тред. Максимум, что может Indy - не уничтожать закрытые треды, а хранить их в ThreadManager и если приходит новый юзер, то запрашивать тред у ThreadManager и только если там нет свободных, то создавать заново.

Денис   (14.06.04 09:01) [2]
В стандартной поставке Indy есть куча примеров, в том числе и по SMTP. Их вполне достаточно для того, чтобы понять, как все работает. А не отвечают тебе потому, что твой вопрос очень сумбурный. Indy SMTP наследуется от Indy TCP:
TIdSMTPServer = class(TIdTCPServer)
А TCP через сокеты только и работает. Зачем ты пытаешься явно использовать сокеты? И вообще непонятно, что ты пытаешься использовать. Всегда указывай какие конкретные компоненты ты используешь, а не просто "сокс".



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

Текущий архив: 2004.08.15;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.026 c
14-1090967469
GanibalLector
2004-07-28 02:31
2004.08.15
Хочу красоты


14-1090841215
AZ
2004-07-26 15:26
2004.08.15
Что такое SOAP и с чем это мыло едят?


14-1090935165
DSKalugin
2004-07-27 17:32
2004.08.15
Частные заказы (соцопрос)


3-1089839578
demonyator
2004-07-15 01:12
2004.08.15
Как сделать SQL запрос не чувствительным к регистру?


14-1091173497
Layner
2004-07-30 11:44
2004.08.15
Мышь(оптическая) сама бегает в win2000 :)