En Dynamics NAV, der blev alt for virtuel…

Kører du en Dynamics NAV 2015 eller 2016 med cumulative update fra mellem maj og oktober 2016 og afvikler du den på en VMWare host og bruger vmxnet3 netkortet, ja så kan din Dynamics NAV ende med at være så virtuel, at den slet ikke virker :-).

Spøg til side. Hvis du oplever at din NAV- (og SQL-) serveren går helt i stå fordi der er flere CPU-tråde på SQL-serveren end det opsatte antal Max Worker Threads. Og de står alle sammen og venter på “ASYNC_NETWORK_IO”, så er du ramt af denne fejl.

Der findes et antal workarounds, og du bør under alle omstændigheder checke følgende:

  • Du bør have en virtuel CPU core pr. 25 sessions på SQL-serveren (brugere)
  • Din MAXDOP på SQL-serveren bør stå til 1 (nogle anbefaler højere (eller 0 = uendelig), men de fleste anbefaler 1 på NAV da dens forespørgsler typisk alligevel ikke med fordel kan afvikles parallelt. Den kan dog evt. midlertidigt justeres op mens der køres maintenance plans da de så afvikles hurtigere – især bygning af indexer vil afvikles hurtigere)

Det KAN være fristende at tro at det bare kan fixes ved at øge antallet af “Max Worker Threads”, men det er normalt ikke det rigtige fix og vil formentligt blot “udsætte problemet” – dvs. du får det igen, bare lidt senere. Normalt er SQL-serverens default værdier på det punkt faktisk helt ok:

Antal cores 32/64 bit operativsystem Max Worker Threads (default)
1-4
8
16
32
32 bit OS 256
288
352
480
1-4
8
16
32
64 bit OS 512
576
704
960

Lad være med at blive fristet af en løsning hvor du fx sætter MAXDOP til 1, “Cost Threshold for Parallelism” til 60 og “Max Worker Threads” til 2048. Det er kun en midlertidig workaround og ikke den optimale løsning for dig.

En anden approach kunne naturligvis være blot at vælge et andet netkort end vmxnet3 til den virtuelle host – fx “E1000”. Men igen – det er ikke den rigtige løsning og har andre negative sideeffekter på især performancen.

Det korrekte fix er naturligvis at opgradere NAV til nyeste cumulative update (evt. blot opgradere platformen med den). Vælg den nyeste – det er næsten altid en stor fordel. Problemet har dog været løst siden:

  • Dynamics NAV 2015: cumulative update 25 (build 47254)
  • Dynamics NAV 2016: cumulative update 13 (build 47256)

Så vidt vides er det kun Dynamics NAV 2015 og 2016 der er ramt af problemet.

Se evt. også dette blogindlæg: http://blog.stryk.info/2016/12/06/navsql-is-completely-stalled-because-of-too-many-cpu-threads/