Maison > développement back-end > Golang > Pourquoi les statistiques « pprof » et Docker de Go signalent-elles une utilisation différente de la mémoire ?

Pourquoi les statistiques « pprof » et Docker de Go signalent-elles une utilisation différente de la mémoire ?

Susan Sarandon
Libérer: 2024-11-20 01:39:03
original
496 Les gens l'ont consulté

Why Do Go's `pprof` and Docker Stats Report Different Memory Usage?

Différence d'utilisation de la mémoire entre Go Tool Pprof et Docker Stats

Lors de l'utilisation de Go 1.11, vous pouvez rencontrer un écart d'utilisation de la mémoire signalé par Go outil pprof (runtime.MemStats.sys) et statistiques du docker. Les statistiques Docker s'appuient sur les groupes de contrôle pour obtenir des informations sur l'utilisation de la mémoire, notamment le cache de page et la taille de l'ensemble résident (RES). D'un autre côté, pprof affiche une valeur floue pour l'utilisation de la mémoire, ce qui rend difficile la comparaison directe entre les deux.

Comprendre l'utilisation de la mémoire des groupes de contrôle

les groupes de contrôle fournissent un moyen pour limiter et suivre l’utilisation des ressources dans un conteneur. La métrique usage_in_bytes dans les groupes de contrôle inclut à la fois la mémoire utilisée par le processus et la mémoire mise en cache. Si un conteneur lit des fichiers sur le système hôte, la mémoire mise en cache par le noyau sera également comptée dans usage_in_bytes.

Récupération de mémoire dans Docker

Si un conteneur atteint sa limite de mémoire, Docker tente de récupérer la mémoire inutilisée. Ceci est différent d'une erreur MOO, qui se produit lorsque toute la mémoire a été utilisée.

Façons de limiter l'utilisation de la mémoire

Pour contrôler l'utilisation de la mémoire d'un conteneur Docker, vous peut spécifier une limite de mémoire dans la commande docker run ou dans le fichier docker-compose.yml en utilisant le mem_limit paramètre.

Conclusion

L'écart dans les rapports sur l'utilisation de la mémoire entre les statistiques pprof et docker provient des différentes façons dont ils mesurent l'utilisation de la mémoire. Les cgroups, tels qu'utilisés par Docker stats, incluent la mémoire cache de fichiers dans son calcul, tandis que pprof présente une valeur fuzz sans tenir compte du cache. En gérant les limites de mémoire via les groupes de contrôle, vous pouvez empêcher une croissance incontrôlée de la mémoire dans vos conteneurs.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal