Surveiller_les_performances_des_conteneurs_Docker_avec_cAdvisor__english_

Monitor the performance of Docker containers with cAdvisor

cAdvisor (https://github.com/google/cadvisor) allows to monitor the performance of a container. It displays information on CPU and memory usage. cAdvisor is written in Go. It captures the metrics that the docker stats command returns and aggregates them.

Let’s launch cAdvisor in a Docker container :

docker run \
  -d \
  -v=/:/rootfs:ro \
  -v=/var/run:/var/run:rw \
  -v=/sys:/sys:ro \
  -v=/var/lib/docker/:/var/lib/docker:ro \
  -p=8080:8080 \
  --privileged \
  --name=cadvisor \
  google/cadvisor:latest
Unable to find image 'google/cadvisor:latest' locally
latest: Pulling from google/cadvisor

5c916c92: Pulling fs layer 
5bb65cdf: Pulling fs layer 
Digest: sha256:815386ebbe9a3490f38785ab11bda34ec8dacf4634af77b8912832d4f85dca04
Status: Downloaded newer image for google/cadvisor:latest
f9c03c73404c04bf371fd501e5a9dab999ebddaf18084a91b4aafbf26459d37b

In order to work, we must give cAdvisor access to the necessary resources on the host. To give full access to the host devices, the container must be launched with the --privileged option.

To access cAdvisor, in a Web browser, go to http://0.0.0.0:8080/.

cAdvisor displays the following sections :

  • Overview,
  • Processes,
  • CPU,
  • Memory.

cAdvisor

cAdvisor

cAdvisor

cAdvisor

The summary page

This web page displays the following sections :

  • The Overview section displays gauges to indicate if the resources have reached their limits.
  • The Processes section displays information from the docker ps aux, docker ps and docker top commands in tabular form; to sort the processes, click on the header of the corresponding column. The columns are:
    • User: this is the user who runs the process,
    • PID: this is the ID of the process,
    • PPID: this is the PID of the parent process,
    • Start Time : this is the time the process starts,
    • CPU %: this is the percentage of CPU consumed,
    • MEM %: this is the percentage of RAM consumed,
    • RSS: this is the amount of main memory consumed,
    • Virtual Size: this is the amount of virtual memory consumed,
    • Status: this is the current state of the process (standard Linux status codes),
    • Running Time: this is the process execution time,
    • Command: This is the command executed by the process,
    • Container: this is the container to which the process is attached.
  • The CPU section shows the CPU usage with the columns:
    • Total Usage: this is the aggregate usage of all cores,
    • Usage per Core: this is a breakdown of usage per core,
    • Usage Breakdown: this is the aggregated usage on all cores but distributed between what is used by the kernel and by the user’s processes.
  • The Memory section is divided into two parts :
    • Total Usage: the total amount of memory used by all processes for the host or container: it is equal to Host Memory + Cold Memory;
      • the Hot Memory corresponds to the pages that have been recently affected by the kernel;
      • the Cold Memory corresponds to the page that has not been touched for a certain period of time and which could be claimed if necessary.
    • Usage Breakdown: it gives a visual representation of Total Usage and Hot Memory.
  • The Network section displays :
    • Throughput: shows incoming and outgoing traffic over the last minute;
    • Errors: these are network errors, so this graph should be flat.
  • The Filesystem section shows a breakdown of filesystem usage.
  • The Subcontainers section shows the top CPU usage and the top memory usage.

The container statistics page

At the top of the page is a link to the running containers to view their statistics.

cAdvisor

cAdvisor

The Docker Containers page

At the top of the page there is a link Docker Containers to display statistics about the Docker host.

cAdvisor

This page contains the following sections:

  • The Subcontainers section displays a list of clickable containers. By clicking on the name, cAdvisor displays details on:
    • the isolation (Isolation):
      • CPU: these are the CPU allocations of the container; if there are no resource limits, information about the host CPU is displayed,
      • Memory : these are the memory allocations of the container,
    • usage (Usage):
      • Overview: these are the gauges that allow you to see if you are approaching the resource limits,
      • Processes: these are the processes of the container,
      • CPU: these are the usage graphs of the CPU isolated from the container,
      • Memory: this is the use of the container’s memory.
  • The Driver Status section displays:
    • the basic statistics of the main Docker process,
    • information about the host kernel,
    • the name of the host,
    • the operating system used,
    • the total number of containers and images (the number of images counts each file system as an individual image).
  • The section Images displays the list of Docker images available on the host: Repository, tag, size, image creation date, image ID.

You now know how to obtain a large amount of very useful statistics on Docker containers, allowing you to diagnose problems and optimize container performance.

Surveiller_les_performances_des_conteneurs_Docker_avec_cAdvisor__french_

Surveiller les performances des conteneurs Docker avec cAdvisor

cAdvisor (https://github.com/google/cadvisor) permet de monitorer les performances d’un container. Il affiche des informations sur l’utilisation du CPU et de la mémoire. cAdvisor est écrit en Go. Il capture les métriques que la commande docker stats retourne et les agrège.

Lançons cAdvisor dans un conteneur Docker :

docker run \
  -d \
  -v=/:/rootfs:ro \
  -v=/var/run:/var/run:rw \
  -v=/sys:/sys:ro \
  -v=/var/lib/docker/:/var/lib/docker:ro \
  -p=8080:8080 \
  --privileged \
  --name=cadvisor \
  google/cadvisor:latest
Unable to find image 'google/cadvisor:latest' locally
latest: Pulling from google/cadvisor

5c916c92: Pulling fs layer 
5bb65cdf: Pulling fs layer 
Digest: sha256:815386ebbe9a3490f38785ab11bda34ec8dacf4634af77b8912832d4f85dca04
Status: Downloaded newer image for google/cadvisor:latest
f9c03c73404c04bf371fd501e5a9dab999ebddaf18084a91b4aafbf26459d37b

Pour pouvoir fonctionner, nous devons donner accès à cAdvisor aux ressources nécessaires sur l’hôte. Pour donner un accès complet aux devices de l’hôte, le conteneur doit être lancé avec l’option --privileged.

Pour accéder à cAdvisor, dans un navigateur Web, allez à l’adresse http://0.0.0.0:8080/.

cAdvisor affiche les sections suivantes :

  • Overview,
  • Processes,
  • CPU,
  • Memory.

cAdvisor

cAdvisor

cAdvisor

cAdvisor

La page résumé

Cette page Web affiche les sections suivantes :

  • La section Overview affiche des jauges pour indiquer si les ressources ont atteint leurs limites.
  • La section Processes affiche des informations issues des commandes docker ps aux, docker ps et docker top sous forme de tableau; pour trier les process, cliquez sur l’entête de la colonne correspondante. Les colonnes sont :
    • User : c’est l’utilisateur qui fait tourner le process,
    • PID : c’est l’ID du process,
    • PPID : c’est le PID du process parent,
    • Start Time : c’eest l’heure de démarrage du process,
    • CPU % : c’est le pourcentage du CPU consommé,
    • MEM % : c’est le pourcentage de RAM consommé,
    • RSS : c’est la quantité de mémoire principale consommée,
    • Virtual Size : c’est la quantité de mémoire virtuelle consommée,
    • Status : c’est l’état actuel du process (codes d’état Linux standards),
    • Running Time : c’est la durée d’exécution du process,
    • Command : c’est la commande exécuter par le process,
    • Container : c’est le conteneur auquel le process est attaché.
  • La section CPU affiche l’utilisation du CPU avec les colonnes :
    • Total Usage : c’est l’utilisation agrégée sur l’ensemble des cores,
    • Usage per Core : c’est un découpage de l’utilisation par core,
    • Usage Breakdown : c’est l’utilisation agrégée sur l’ensemble des cores mais réparti entre ce qui est utilisé par le kernel et par les process de l’utilisateur.
  • La section Memory comprend deux parties :
    • Total Usage : la quantité de mémoire totale utilisée par l’ensemble des process pour l’hôte ou le conteneur : elle est égale à Hot Memory + Cold Memory;
      • la Hot Memory correspond aux pages qui ont été touchées récemment par le kernel;
      • la Cold Memory correspond à la page qui n’a pas été touchée pendant un certain temps et qui pourrait être réclamée si nécessaire.
    • Usage Breakdown : elle donne une représentation visuelle de Total Usage et Hot Memory.
  • La section Network affiche :
    • Throughput : montre le traffic entrant et sortant sur la dernière minute;
    • Errors : ce sont les erreurs réseau; ce graphe devrait donc être plat.
  • La section Filesystem (système de fichier) montre un découpage de l’utilisation du système de fichier.
  • La section Subcontainers affiche le top des consommations en CPU (Top CPU Usage) et en mémoire (Top Memory Usage).

La page de statistiques des conteneurs

En haut de la page se trouve un lien vers les conteneurs en cours d’exécution pour afficher leurs statistiques.

cAdvisor

cAdvisor

La page Docker Containers

En haut de la page se trouve un lien Docker Containers pour afficher des statistiques sur l’hôte Docker.

cAdvisor

Cette page contient les sections suivantes :

  • La section Subcontainers affiche une liste des conteneurs dont le nom est cliquable. En cliquant sur le nom, cAdvisor affiche des détails sur :
    • l’isolation (Isolation) :
      • CPU : ce sont les allocations de CPU du conteneur; s’il n’y a pas de limites de ressources, les informations sur le CPU de l’hôte sont affichéee,
      • Memory : ce sont les allocations de mémoire du conteneur
    • l’utilisation (Usage) :
      • Overview : ce sont les jauges qui permettent de voir si on s’approche des limites de ressource,
      • Processes : ce sont les processes du conteneur,
      • CPU : ce sont les graphes d’utilisation du CPU isolé du conteneur,
      • Memory : c’est l’utilisation de la mémoire du conteneur.
  • La section Driver Status affiche :
    • les statistiques de base du process Docker principal,
    • des informations sur le kernel de l’hôte,
    • le nom de l’hôte,
    • le système d’exploitation utilisé,
    • le nombre total de conteneurs et d’images (le nombre d’images compte chaque système de fichier comme une image individuelle).
  • La section Images affiche la liste des images Docker disponibles sur l’hôte : Repository, tag, taille, date de création de l’image, ID de l’image.

Vous savez maintenant obtenir une grande quantité de statistiques très utiles sur les conteneurs Docker, permettant de diagnostique des problèmes et d’optimiser les performances des containers.

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×