Investiguer une fuite mémoire dans un webjob Azure

Arnaud TAMAILLON
Apr 5 · 9 min read
Consommation mémoire de l’app service sur une quinzaine de jours

Récupérer un dump mémoire du webjob

Récupérer l’identifiant de process

Récupérer l’identifiant de process via Kudu

Capturer le dump

Analyser le dump

Microsoft Visual Studio Enterprise

La fenêtre principale du dump

JetBrains dotMemory

Le menu Import Dump permet d’importer le fichier capturé précédemment

WinDbg

# pour .Net Framework
.loadby sos clr
# pour .Net Core
.loadby sos coreclr
The call to LoadLibrary(D:\Windows\Microsoft.NET\Framework64\v4.0.30319\sos) failed, Win32 error 0n126
"The specified module could not be found."
Please check your debugger configuration and/or network access.
.load C:\Windows\Microsoft.NET\Framework64\v4.0.30319\sos
!dumpheap -stat
Résultat de la commande dumpheap -stat
La liste d’instances
!GCRoot 000001b631a5eb58
Sortie de la commande GCRoot

Corriger le problème

Valider la correction

YounitedTech

Le blog Tech de Younited, où l’on parle de développement, d’architecture, de microservices, de cloud, de data… Et de comment on s’organise pour faire tout ça. Ah, et on recrute aussi, on vous a dit ?

Arnaud TAMAILLON

Written by

YounitedTech

Le blog Tech de Younited, où l’on parle de développement, d’architecture, de microservices, de cloud, de data… Et de comment on s’organise pour faire tout ça. Ah, et on recrute aussi, on vous a dit ?