Memory Leak auf dem NST

14. März 2017 15:19

Hallo zusammen,

wir haben NAV 2017 CU2.1 im Einsatz und auf einem unserer NSTs ein Memory Leak Problem. Um dieses Schritt zu Schritt zu finden, habe ich nur mal den NST gestartet ohne auch nur eine Session dagegen laufen zu lassen. Auf dem Server habe ich auch gegen die Standarddatenbank ein NST aufgesetzt.

NST gegen Livedatenbank -> hat nach 20 Minuten 1500 MB Arbeitsspeicher gezogen
NST gegen Standarddatenbank -> hat nach Stunden irgendwas zwischen 500 und 600 MB Arbeitsspeicher gezogen

Das scheint mir schon etwas merkwürdig. Weswegen ich geprüft habe welche Parameter im NST unterschiedlich sind und zwar diese hier:

MaxConcurrentCalls -> Standard NST: 1000 -> Problem NST: MaxValue
ClientServicesMaxConcurrentConnections -> Standard NST: 500 -> Problem NST: MaxValue
ClientServiceReconnectPeriod -> Standard NST: 00:10 -> Problem NST: 08:30
ClientServicesMaxUploadSize -> Standard NST: 100 -> Problem NST: 300
SQLCommandTimeout -> Standard NST: 00:30 -> Problem NST: 24:00
CloseInactiveSQLConnectionsGeneration -> Standard NST: 10 -> Problem NST: MaxValue

Hat jemand eine Idee welcher der Parameter den Unterschied macht und könnte mir vielleicht erklären warum das der Fall ist... DANKE!

Gruß
sas_fisch

Re: Memory Leak auf dem NST

14. März 2017 15:27

Hallo,

arbeitest du mit Jobqueues oder Webservices?

Gruß Fiddi

Re: Memory Leak auf dem NST

14. März 2017 15:32

Weder noch.

Re: Memory Leak auf dem NST

14. März 2017 15:55

Wenn du dann doch mal eine Session startest wieviele Einträge hat zu dem Zeitpunkt die Tabelle "Active Session" auf beiden NST?

Weil wenn gar nichts offen ist, nichtmal ein Rollencenter, dann liegt fiddi mit der Frage schon goldrichtig eigentlich.

EDIT: Was passiert auf dem SQL Server? Normalerweise gibt es regelmäßig Zugriffe auf $ndo$taskscheduling, Object Tracking und wahrscheinlich $ndo$cachesync.

Re: Memory Leak auf dem NST

14. März 2017 22:25

Hallo,

Ich vergaß noch den Webclient.

Re: Memory Leak auf dem NST

15. März 2017 10:13

Hi zusammen,

also ich habe keine Active Session auf dem Node laufen. Wenn ich einen Client verbinde, sehe ich auch nur eine einzige Session. Wir nutzen weder Jobqueues, Webservices oder den Webclient.

SilverX hat geschrieben:EDIT: Was passiert auf dem SQL Server? Normalerweise gibt es regelmäßig Zugriffe auf $ndo$taskscheduling, Object Tracking und wahrscheinlich $ndo$cachesync.


Kannst Du mir dabei helfen, wie ich das am besten nach schaue? Denn wir sprechen ja von meinem Livesystem, heißt es sind natürlich auf anderen NST auch User unterwegs. TaskScheduling sollte nicht passieren, da ich dies im NST deaktiviert habe.

Gruß
sas_fisch

Re: Memory Leak auf dem NST

16. März 2017 17:30

Hattet ihr vor einer Weile ein Update Projekt? Die Einstellungen des Problem NST sehen sehr nach Updateprojekt für Datenkonvertierung aus. Das erklärt zwar noch nicht warum der NST Speicher zieht ohne Session, ist aber vielleicht ein Indiz auf etwas anderes.

Re: Memory Leak auf dem NST

16. März 2017 19:05

Wenn es das echte Produktivsystem ist, dann ist das in der Tat schwierig. Es wird ja auch der Cache zwischen den NST synchronisiert, was, so nehme ich an, den Speicherverbrauch eh ansteigen lässt. Habt ihr denn während der Tests auch auf der Demo Datenbank, auf einem anderen NST gearbeitet?

Re: Memory Leak auf dem NST

17. März 2017 11:33

SilverX hat geschrieben:Es wird ja auch der Cache zwischen den NST synchronisiert, was, so nehme ich an, den Speicherverbrauch eh ansteigen lässt.

Ah das ist interessant, dass wusste ich gar nicht. Zwischen welchen NST? Nur die auf dem gleichen Server sind oder alle NST die in die gleiche Datenbank gehen? Kannst Du mir etwas mehr erklären, wie das funktioniert?

SilverX hat geschrieben:Habt ihr denn während der Tests auch auf der Demo Datenbank, auf einem anderen NST gearbeitet?

Nur kleiner Sachen, nichts wildes. Aber das könnte ich nochmal testen.

Re: Memory Leak auf dem NST

20. März 2017 13:50

Zumindest ohne Client ändert sich am Speicherverbrauch eines NST bei mir nichts. Deshalb ist wohl auch meine Vermutung falsch. Bei mir reduziert sich der Speicher sogar nach einiger Zeit, sobald ein Client verbunden ist.

Re: Memory Leak auf dem NST

12. April 2017 16:57

Der Schalter "CompileBusinessApplicationAtStartup" (ab NAV 2016) bewirkt scheinbar pauschalen extremen Speicherverbrauch durchs Kompilieren und Laden aller Objekte auch ohne Session, damit der erste User gleich richtig loslegen kann.
Code:
  <!--
    Configures whether the server should compile and warm up the whole Business Application at startup.
    This can improve the perceived startup performance on cold server.
  -->
  <add key="CompileBusinessApplicationAtStartup" value="true"/>


Siehe Kommentare hier:
https://blogs.msdn.microsoft.com/nav/2017/04/10/cumulative-update-05-for-microsoft-dynamics-nav-2017-has-been-released/

Re: Memory Leak auf dem NST

12. April 2017 17:16

Der Speicher wird aber rasch wieder freigegeben, spätestens wenn man ein bisschen was macht. Das ist kein leck sondern normales Verhalten. Erschreckend aber ok.

Re: Memory Leak auf dem NST

18. Mai 2017 11:03

Eventuell liegt es nicht am NST, sondern am Windows bzw. SQL-Server selber. Hier sind Hinweise zu dortigen bekannten und gestopften Speicherlecks.