Memstat
| Fiche express | |
|---|---|
| Domaine | Diagnostic mémoire par process |
| Commande | memstat · /proc/PID/smaps
|
| Contexte | Repérer une fuite mémoire progressive |
| Voir aussi | Smem · Pmap |
Pour diagnostiquer une fuite mémoire d'une application (croissance continue de la consommation dans le temps), plusieurs approches complémentaires, du plus bas niveau au plus synthétique.
Détail brut via /proc
cat /proc/PID/smaps | grep Size # taille de chaque mapping mémoire du process
pstree -Ap # arborescence des process avec PID, pour identifier le bon PID
`smaps` donne le détail mapping par mapping (heap, stack, bibliothèques, anonymous) — très verbeux mais exhaustif.
memstat
memstat -wp PID | sort -k1 -nr
`memstat` résume l'usage mémoire d'un process de façon plus lisible que `smaps` brut. Selon la distribution, l'outil peut ne pas être empaqueté nativement — dans ce cas, Smem couvre le même besoin avec une distribution plus large et une métrique PSS plus fiable pour comparer plusieurs process entre eux.
Méthode pour confirmer une fuite
Une seule mesure ne prouve rien — une fuite se confirme par une tendance :
while true; do
date; grep VmRSS /proc/PID/status
sleep 300
done
Une croissance de `VmRSS` continue et non bornée dans le temps (sans corrélation avec une charge qui augmenterait elle aussi) est le signe d'une fuite plutôt que d'un usage normal de cache applicatif.