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