
Consulter les statistiques d'utilisation des ressources (docker stats)
Découvrez comment utiliser docker stats pour surveiller l'utilisation des ressources de vos conteneurs Docker. Analysez en temps réel le CPU, la mémoire, les E/S et les performances réseau.
Introduction à docker stats
La commande `docker stats` est un outil essentiel pour surveiller les performances des conteneurs Docker en temps réel. Elle fournit des informations détaillées sur l'utilisation des ressources, notamment le CPU, la mémoire, les E/S disque et réseau. Ces données sont cruciales pour détecter des anomalies, optimiser la performance des applications conteneurisées et garantir une utilisation efficace des ressources système.
Que ce soit pour diagnostiquer un problème de performance ou pour surveiller l'impact de plusieurs conteneurs sur une machine hôte, `docker stats` permet aux administrateurs et aux développeurs d'obtenir une vue d'ensemble claire et précise. Les informations affichées sont mises à jour en temps réel, ce qui facilite la prise de décision rapide dans des environnements dynamiques.
Dans cette section, nous explorerons le fonctionnement de `docker stats`, ses différentes options et comment interpréter les métriques fournies. Vous apprendrez également à utiliser cette commande dans des scénarios pratiques pour optimiser la gestion des ressources de vos conteneurs.
Utilisation de la commande docker stats
### Commande de basePour afficher les statistiques d'utilisation des ressources de tous les conteneurs en cours d'exécution, utilisez la commande suivante :```bashdocker stats```Cette commande affiche les statistiques en temps réel pour chaque conteneur actif, y compris :- **CPU %** : Pourcentage de l'utilisation du CPU par le conteneur.- **MEM USAGE / LIMIT** : Quantité de mémoire utilisée par le conteneur par rapport à la limite définie (le cas échéant).- **MEM %** : Pourcentage de mémoire utilisée par rapport à la mémoire totale disponible.- **NET I/O** : Quantité de données réseau envoyées et reçues par le conteneur.- **BLOCK I/O** : Quantité de données lues et écrites sur le disque.- **PIDS** : Nombre de processus actifs dans le conteneur.
### Afficher les statistiques pour des conteneurs spécifiquesPour limiter l'affichage aux statistiques d'un ou plusieurs conteneurs spécifiques, indiquez leurs noms ou ID :```bashdocker stats
### Options supplémentaires- **`--no-stream`** : Affiche une seule mise à jour des statistiques et quitte la commande au lieu d'afficher un flux continu :```bashdocker stats --no-stream```- **`--format`** : Permet de personnaliser l'affichage des statistiques avec un modèle Go. Par exemple, pour afficher uniquement l'utilisation du CPU et de la mémoire :```bashdocker stats --format "{{.Name}}: CPU {{.CPUPerc}}, MEM {{.MemUsage}}"```
Cas d'utilisation pratiques de docker stats
### Identifier des conteneurs gourmands en ressourcesSi une machine hôte montre des signes de surcharge, utilisez `docker stats` pour identifier les conteneurs qui consomment une quantité excessive de CPU ou de mémoire. Par exemple, un conteneur avec une utilisation CPU constamment élevée pourrait nécessiter une optimisation ou une limitation des ressources.
### Optimiser la répartition des ressourcesDans des environnements où plusieurs conteneurs partagent les ressources système, `docker stats` permet de surveiller leur utilisation et de réajuster les limites en conséquence. Par exemple, si un conteneur utilise moins de mémoire que prévu, vous pourriez réduire sa limite pour libérer des ressources pour d'autres conteneurs.
### Détecter des fuites de mémoireLes fuites de mémoire dans une application peuvent être identifiées en surveillant l'utilisation de la mémoire d'un conteneur sur une période prolongée. Si la mémoire utilisée continue d'augmenter sans se stabiliser, cela peut indiquer une fuite de mémoire dans l'application.
Meilleures pratiques pour docker stats
### Intégrez docker stats dans vos outils de surveillance`docker stats` est utile pour des diagnostics ponctuels, mais pour une surveillance continue, il est recommandé d'intégrer ses données dans des outils de monitoring comme Prometheus, Grafana ou Datadog. Ces outils permettent de collecter et d'analyser les métriques sur une période prolongée.
### Combinez avec des limitations de ressourcesPour éviter qu'un conteneur ne monopolise les ressources, combinez `docker stats` avec des limites de CPU et de mémoire définies lors du démarrage des conteneurs (par exemple, avec `--memory` et `--cpus`). Cela garantit une utilisation équilibrée des ressources.
### Analysez les tendances au lieu de réagir aux picsPlutôt que de réagir uniquement aux pics d'utilisation des ressources, utilisez `docker stats` pour analyser les tendances sur le long terme. Cela permet de mieux comprendre le comportement de vos applications et de planifier les ajustements nécessaires.
Résolution des problèmes courants avec docker stats
### Problème : Les statistiques ne s’affichent pas pour un conteneurSi `docker stats` ne montre pas de données pour un conteneur, vérifiez que celui-ci est en cours d'exécution avec `docker ps`. Si le conteneur est arrêté, redémarrez-le avec `docker start`.
### Problème : Utilisation élevée mais inexpliquée des ressourcesSi un conteneur consomme une grande quantité de ressources sans raison apparente, utilisez `docker exec` pour accéder au conteneur et exécuter des outils comme `top` ou `htop` pour examiner les processus actifs.
### Problème : La sortie est difficile à analyser en temps réelPour simplifier l'analyse des données en temps réel, utilisez l'option `--format` pour personnaliser l'affichage ou redirigez la sortie de `docker stats` vers un fichier pour une analyse ultérieure :```bashdocker stats --no-stream > stats_output.txt```