[Gelöst] Hohe CPU-Last durch Visual C# Command Line Compiler

4. April 2019 10:21

Hallo Freunde,

wir nutzen mehrere MS SQL/NAV 2018 Server (VMs) für Datenmigrationen. Mir ist jetzt schon öfter aufgefallen, dass die Server nach einem Neustart teilweise sehr lange Zeit starke CPU-Last haben. Verursacht wird die Last von Prozessen des "Visual C# Command Line Compiler". Auf den Servern (Win 2016 Server Datacenter) läuft außer MS SQL-Server 2017, NAV 2018 und jeweils einer aktiven NAV-Instanz nichts. Ich gehe also davon aus, dass der Prozess mit NAV zusammen hängt.

Habt ihr eine Idee, ob ich das irgendwie unterbinden kann, damit die Server schneller wieder mit voller Leistung zur Verfügung stehen. Oder ist das ggf. "normal" so und wir müssen nach Neustart einfach abwarten, bis diese Prozesse beendet wurden? Interessant wäre auch zu wissen, was da genau passiert.

Danke schon einmal für Eure Hilfe/Infos!

Viele Grüße in die Runde,
Sascha
Zuletzt geändert von RatzeFummel am 4. April 2019 15:02, insgesamt 1-mal geändert.

Re: Hohe CPU-Last durch Visual C# Command Line Compiler

4. April 2019 10:31

Ist auf den Instanzen das Debugging aktiviert?

Re: Hohe CPU-Last durch Visual C# Command Line Compiler

4. April 2019 11:58

Hallo Michael,

nein, Debugging (Parameter: "Enable Debugging") ist bei den Instanzen standardgemäß ausgeschaltet. Angepasst werden beim Aufbau der Instanzen die Zeitzone, die Sprache (de-DE), der 'Meta Provider Cache Size', die Datenbank Zugangsdaten und das war's.

Das "Problem" tritt interessanterweise auf allen Servern auf. Vielleicht hat es auch etwas mit den Visual C#/.NET Runtimes zu tun. Dazu müsste ich aber per Process Monitor mal schauen, welche Dateien der Compiler denn da anfasst und jedes mal neu compiliert beim Systemstart (oder beim Start der NAV Instanz?). Ich schaue mal, ob ich in Kürze eine der Maschinen neu starten kann, um das mal zu testen.

Re: Hohe CPU-Last durch Visual C# Command Line Compiler

4. April 2019 12:02

RatzeFummel hat geschrieben:... (oder beim Start der NAV Instanz?)...

Ich glaube genau das ist der Fall. Ich vermute die Dienste holen sich zum Start die CAL/AL Daten aus der Datenbank und kompilieren diese.
Man möge mich berichtigen, wenn ich falsch liege.

Re: Hohe CPU-Last durch Visual C# Command Line Compiler

4. April 2019 12:34

Das ist für NAV 2018 normal. Die neuen NAV-Versionen (ab NAV 2016) kompilieren alle Objekte beim Start der ersten Instanz und cachen alles was geht, damit danach das System sofort mit normaler Geschwindigkeit benutzt werden kann. Der Arbeitsspeicher wird dann nach und nach entladen vom Code der Objekte, die nicht benutzt werden.
Die älteren machten das nicht, da wurde der Programmcode je nach Benutzung Objekt für Objekt geladen, aber dadurch war das System am Anfang immer sehr lahm, was zu vielen Beschwerden führte.
Abschalten kann man das m.W. nicht. (Nachtrag 15.05.19: Schalter dazu s.u.)

Re: [Gelöst] Hohe CPU-Last durch Visual C# Command Line Comp

4. April 2019 15:04

Hallo Kai, hallo Michael,

das klärt die Frage wohl recht eindeutig. :) Top! Recht vielen Dank für diese Infos.

Grüßle, Sascha

Re: Hohe CPU-Last durch Visual C# Command Line Compiler

15. Mai 2019 09:42

Kowa hat geschrieben:Abschalten kann man das m.W. nicht.

Mein Wissen hat sich eben erweitert :wink: . Es geht doch, und zwar mit:
Code:
<add key="CompileBusinessApplicationAtStartup" value="false" />

in der CustomSettings.config des Servers bzw. dessen Instanz(en).
Configuring Microsoft Dynamics NAV Server
Configuring Business Central Server