Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi wieviele TIdThreads mit TIdTCPServer möglich? (https://www.delphipraxis.net/41688-wieviele-tidthreads-mit-tidtcpserver-moeglich.html)

fisherman_b 7. Mär 2005 11:05


wieviele TIdThreads mit TIdTCPServer möglich?
 
Hallo,

leider habe ich bei meiner Suche in den Forum keine passende Antwort finden können, daher frage ich hier mal ganz explizit.
Ich experimentiere zur Zeit mit einem auf den Indy Komponenten basierenden Server (Version 9, Delphi 7 Enterprise, Windows XP).
Ich habe hierfür einen Client gemacht, der eine beliebige Anzahl von User-Zugriffen simuliert, um z.B. mein Protokoll testen zu können. Dabei ist mir eher zufällig aufgefallen, dass der TIdTCPServer bei ca. 2150 Connections mit Fehlermeldungen dichtmacht (Kein Speicher verfügbar), es sind dann keine weiteren Connections möglich. Das leuchtet mir nicht ganz ein: die Threads (TidPeerThread), die bei jedem Connect erzeugt werden, belegen garde mal ca. 15 KB pro Client. Wie muss denn der fehlende Speicher zur Verfügung gestellt werden ? Die Server-Applikation inkl. ca. 2000 Threads benötigt beispielsweise etwa 34 MB Speicher.
Ich habe, um auszuschliessen, dass es an meinen Threads liegt, das Gleiche mit den Indy Demos getestet (Chat, Basic Server). Das Resultat ist das Gleiche, unabhängig davon ob man einen TIdThreadMgrDefault oder einen TIdThreadMgrPool verwendet.
Gibt es eine Beschränkung bei den Indy Komponenten, was die Anzahl der Threads angeht ? Oder ist das bereits eine Beschränkung des Betriebssystems (also ca. 2500) ?

Gruss,

Bernhard

DataCool 7. Mär 2005 11:23

Re: wieviele TIdThreads mit TIdTCPServer möglich?
 
Hi,

auf was fürn nem System haste das ganze denn getestet ?
Ich meine mich waage zu erinnern, das es eine Betriebssystem bedingte Sperre gibt.

Die sich aber auch irgentwie ändern lässt(aber nur als ADmin)

Gruß Data

fisherman_b 7. Mär 2005 11:32

Re: wieviele TIdThreads mit TIdTCPServer möglich?
 
Hallo Data,

Entwicklung und Test laufen derzeit mit Windows XP. Adminrechte wären kein Problem... Das Ganze wird nach Kompilierung mit Kylix 3 auch unter Linux lauffähig sein, da reine Konsolen-Anwendung nur mit CLX Komponenten und bedingter Kompilierung. Die Frage wäre also, wenn es eine betriebssystembedingte Angelegenheit wäre, für beide Plattformen zu klären.

Danke schon mal für's Mitgrübeln :wink:

Gruss,

Bernhard

DataCool 7. Mär 2005 11:37

Re: wieviele TIdThreads mit TIdTCPServer möglich?
 
Hi,

Du scheinst das gleiche im Prinzip zu coden, wo ich schon dran bin/mit fertig bin.
Also mein Server läuft unter Windoof, daher kenn ich das Problem mit der Clientanzahl, nur reichen mir 1000 Clients absolut aus.

Aber vorsicht :
BEi der Portierung nach Linux bin ich mit nem Kollegen auf nen Problem gestossen, was die Indys unter Kylix angeht.
Ich habe das ganze in ne Consolen App unter Kylix umgeschrieben und lass das ganze als Daemon laufen no Gui no VCL.

Der Server läuft einwandfrei, doch beim beenden bleiben immer zwei Threads hängen :-(

Such dir gleich mal nen Link aus nen Kylix Forum dazu.

Gruß Data

fisherman_b 7. Mär 2005 12:21

Re: wieviele TIdThreads mit TIdTCPServer möglich?
 
Hallo Data,

Dein Tipp ging schon mal absolut in die richtige Richtung:
Da der Source Code von vornherein auf Cross Platform abzielt, gibt's keine Portierung, sondern wirklich nur eine Neukompilierug unter Kylix - zumindest konnte ich das bis zum momentanen Stadium des Projekts durchziehen. Das habe ich eben mal gemacht und auf einen kleinen alten Linux Server geschoben. Ein erster flotter Versuch mit dem Test-Client zeigte auf Anhieb, dass mindestens 4000 parallele Connects möglich sind, wahrscheinlich dann ja auch noch einige mehr.... aber so viele braucht man ja erst mal doch noch nicht *g*
Das Problem mit den übrigbleibenden Threads scheine ich gottseidank auf beiden Plattformen (bisher) nicht zu haben, hoffen wir, dass es dabei bleibt :wink:
Der Server hat übrigens einen speziellen Admin-Port, über den sich später ein passender GUI Client zur Wartung verbinden können soll, damit wirklich eine reine Konsolenanwendung möglich ist.
An Deinen Erfahrungen mit der Thematik bin ich natürlich sehr interessiert. Wenn Dein Projekt dasjenige ist, das man unter der URL in Deiner Signatur findet, kann ich sagen, dass ich von der Technologie eine ähnliche Sache in Arbeit habe, aber das Produkt schon sehr andersartig ist (grobe Richtung: Game Server).

Gruss

Bernhard

DataCool 7. Mär 2005 12:48

Re: wieviele TIdThreads mit TIdTCPServer möglich?
 
Hi Bernhard,

ich glaube wir sollten mal ein paar Erfahrungen austauschen.
Ich habe meine Portierung nach Kylix nämlich erstmal hintenangestellt und lass das ganze jetzt mit 2 Windows Server laufen, obwohl die Entwicklung auch auf Linux abgezielt war.
Und ich Windows nur zum testen genommen habe.

Bei meinem Projekt hast Du schon richtige SChlüsse gezogen.

Hast Du irgenteinen Messi ?

Würd mal gerne ein paar Sachen austauschen,

Gruß Data

fisherman_b 7. Mär 2005 14:52

Re: wieviele TIdThreads mit TIdTCPServer möglich?
 
Hallo Data,

ich schreibe Dir nachher hier über die Mailbox eine private Message, dann können wir uns ja weiter kurzschliessen. Wäre doch gelacht, wenn wir uns nicht gegenseitig wenigstens ein bisschen unter die Arme greifen könnten.


Bis dahin,

Bernhard


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:04 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz