Comment mesurer la mémoire maximale d'une application exécutée sous Linux?
J'exécute cette application en lot, donc je ne peux pas utiliser RSS car, elle signale la mémoire actuelle. J'ai besoin que la mémoire de pointe utilisée par l'application soit signalée à la fin.
Le VmPeak n'est pas non plus une solution, car il rapporte la mémoire allouée et ne calcule pas non plus à partir du vrai Ram mais aussi à partir du disque dur.
Réponses:
Voici 2 méthodes pour suivre l'utilisation maximale de la mémoire d'un processus.
Sirupeux
Je n'ai pas utilisé cet outil mais cela ressemble à ce que vous recherchez. Ça s'appelle Syrupy .
La description
Exemple
/usr/bin/time -v
Oui, ironiquement, la commande GNU time peut vous donner l'utilisation maximale de la mémoire d'un processus. Il rend compte de la mémoire de pointe comme ceci:
Maximum resident set size (kbytes)
.Exemple
Références
la source
Même si le sujet est assez ancien, je veux partager un autre projet qui a émergé de la fonctionnalité du noyau cgroups Linux.
https://github.com/gsauthof/cgmemtime :
Des exemples d'utilisation seraient:
la source
wait4
pour capturer la sortie du processus en combinaison avec cgroups (memory.max_usage_in_bytes
), ce qui semble logique. Plus de détails sont disponibles dans le README sur github.