Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   DataSnap - Speicherverbrauch pro Connection, Threads (https://www.delphipraxis.net/164503-datasnap-speicherverbrauch-pro-connection-threads.html)

DSCHUCH 15. Nov 2011 19:47

DataSnap - Speicherverbrauch pro Connection, Threads
 
Hy,

Wieviel Speicherverbrauch hat DataSnap pro Client Serverseitig bei Euch? Wir erstellen die ServerInstancen (ca 5) global, nicht pro Connection. Es scheint bei uns so zu sein das DataSnap ca 15MB/Connection verbraucht. Habt Ihr auch diese Erfahrung? Das wäre ja recht viel....

Hintergrund: wir haben ca. 100 Connections -> 1,5GB + 100MB Grundverbrauch durch die Anwendung+ diverse umstände = Absturz unseres Diensts nach einer gewissen Anzahl von Betriebsstunden mit Out of Memory... (32 bit)

Dabei laufen wir zusätzlich in folgendes Problem: Es hägt sich ein Thread im Dienst in einer Endlosschleife auf. (wir wissen aber nicht, ob es am Out of Memory liegt, scheint aber so). Problematisch für uns ist das es keiner unserer Threads zu sein scheint, da sich diese in einem Logging alle im richtigen Zeitinterval melden.

Somit ist die Frage, welche Threads es da noch so gibt, (wir haben ca. 6, schneller Blick im Taskmanager zeigt im Zustand ohne Client 25 an, wobei sicherlich noch ein paar auf die Processkommunikation mit dem Windows Dienstmanager zurückzuführen sind) und wie man am einfachsten rausbekommt, welcher von denen sich in dieser Endlosschleife befindet. Vielleicht hatte ja jemdand schonmal das Problem.

PS- keine Debugmöglichkeit auf dem Problembehafteten Server... wir überleden derzeit CodeSite oder einen Remotedebugger zu installieren. (beides noch keine Erfahrung, mache ich mal nen neuen thread auf)

PS- Delphi XE.

Daniel.

mjustin 16. Nov 2011 09:39

AW: DataSnap - Speicherverbrauch pro Connection, Threads
 
Zitat:

Zitat von DSCHUCH (Beitrag 1136372)
PS- keine Debugmöglichkeit auf dem Problembehafteten Server... wir überleden derzeit CodeSite oder einen Remotedebugger zu installieren.


Loggen per Log4D (Open Source) ist eine einfache Möglichkeit, untersützt auch nested diagnostic contexts (NDC) um einzelne Connections im Log einfacher auseinanderzuhalten. Log4D Kann in eine Datei, ODS, oder auch auf einen UDP Socket Server loggen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:59 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