Maison  >  Article  >  Opération et maintenance  >  Comment utiliser Docker pour la surveillance des conteneurs et l'analyse des performances

Comment utiliser Docker pour la surveillance des conteneurs et l'analyse des performances

WBOY
WBOYoriginal
2023-11-08 09:54:431280parcourir

Comment utiliser Docker pour la surveillance des conteneurs et lanalyse des performances

Comment utiliser Docker pour la surveillance des conteneurs et l'analyse des performances

Présentation :
Docker est une plate-forme de conteneurisation populaire qui permet aux applications de s'exécuter dans des conteneurs indépendants en isolant les applications et leurs progiciels dépendants. Cependant, à mesure que le nombre de conteneurs augmente, la surveillance des conteneurs et l’analyse des performances deviennent de plus en plus importantes. Dans cet article, nous présenterons comment utiliser Docker pour la surveillance des conteneurs et l'analyse des performances, et fournirons quelques exemples de code spécifiques.

  1. Utilisez les propres outils de surveillance des conteneurs de Docker
    Docker fournit des outils de surveillance des conteneurs intégrés qui peuvent facilement afficher l'état et les indicateurs de performance du conteneur.

1.1 Commande Docker Stats
La commande Docker Stats peut être utilisée pour afficher l'utilisation des ressources du conteneur en temps réel, y compris le processeur, la mémoire, le réseau et le disque, etc.

Exemple de code :

docker stats [container_name]

1.2 Commande Docker Top
La commande Docker Top peut afficher les processus et l'utilisation des ressources exécutés à l'intérieur du conteneur.

Exemple de code :

docker top [container_name]
  1. Utiliser des outils tiers pour la surveillance des conteneurs
    En plus des propres outils de surveillance de Docker, il existe également des outils tiers qui peuvent surveiller et analyser de manière plus complète les performances des conteneurs.

2.1 cAdvisor
cAdvisor est un outil de surveillance de conteneurs open source qui peut fournir des indicateurs d'utilisation des ressources et de performance des conteneurs.

Exemple de code :

① Installez cAdvisor

docker run -d --name=cadvisor --privileged=true -p 8080:8080 -v /var/run/docker.sock:/var/run/docker.sock google/cadvisor:latest

② Affichez les informations de surveillance de cAdvisor

Ouvrez le navigateur et entrez http://localhost:8080 pour afficher les informations de surveillance. http://localhost:8080,可以查看监控信息。

2.2 Prometheus
Prometheus是一个开源的监控系统,可以通过配置进行容器监控,并提供可视化的监控面板。

示例代码:

① 安装Prometheus

git clone https://github.com/prometheus/prometheus.git
cd prometheus
make build

② 配置Prometheus

在Prometheus的配置文件prometheus.yml中添加以下内容:

scrape_configs:
  - job_name: 'docker'
    metrics_path: '/metrics'
    static_configs:
      - targets: ['<docker_host>:<exporter_port>']

③ 启动Prometheus

./prometheus --config.file=prometheus.yml

④ 查看Prometheus的监控面板

打开浏览器,输入http://localhost:9090,可以查看监控面板。

  1. 容器性能分析
    除了监控容器的状态和性能指标,还可以对容器进行性能分析,以找出性能瓶颈和进行优化。

3.1 使用Docker的stats API获取容器的性能指标
Docker提供了stats API,可以获取容器的性能指标。

示例代码:

import docker

client = docker.from_env()
container = client.containers.get('container_id')

stats = container.stats(stream=False)
print(stats)

3.2 使用FlameGraph进行容器的性能分析
FlameGraph是一个开源的性能分析工具,可以根据CPU使用情况生成火焰图,帮助定位性能问题。

示例代码:

① 安装FlameGraph

git clone https://github.com/brendangregg/FlameGraph.git

② 执行性能分析

docker run -d --name=performance_container <image>
docker cp ./FlameGraph/perf-map-agent/build/lib/linux-x64/libperfmap.so performance_container:/tmp/libperfmap.so
docker exec -it performance_container /bin/bash
cd /tmp
perf record -F 99 -e cpu-clock -g -- /usr/bin/java -agentpath:/tmp/libperfmap.so ...
perf script | stackcollapse-perf.pl | flamegraph.pl > flamegraph.svg

打开浏览器,输入http://localhost:8080/flamegraph.svg

2.2 Prometheus

Prometheus est un système de surveillance open source qui peut surveiller les conteneurs via la configuration et fournir un panneau de surveillance visuel.

Exemple de code : 安 ① Installez Prometheus🎜rrrreee🎜 ② Configuration de Prometheus🎜🎜, ajoutez le contenu suivant dans le fichier de configuration de Prometheus.yml : 🎜Rrreeee🎜 ③ Démarrez prometheus🎜rrreee🎜 ④ Ouvrez et parcourez Pour afficher le panneau de surveillance, entrez http://localhost:9090. 🎜
    🎜Analyse des performances du conteneur🎜En plus de surveiller l'état et les indicateurs de performance du conteneur, vous pouvez également effectuer une analyse des performances sur le conteneur pour trouver les goulots d'étranglement des performances et les optimiser. 🎜🎜🎜3.1 Utiliser l'API de statistiques de Docker pour obtenir les indicateurs de performance du conteneur🎜Docker fournit l'API de statistiques pour obtenir les indicateurs de performance du conteneur. 🎜🎜Exemple de code : 🎜rrreee🎜3.2 Utilisation de FlameGraph pour l'analyse des performances des conteneurs🎜FlameGraph est un outil d'analyse des performances open source qui peut générer des graphiques de flamme basés sur l'utilisation du processeur pour aider à localiser les problèmes de performances. 🎜🎜Exemple de code : 🎜🎜① Installez FlameGraph🎜rrreee🎜② Effectuez une analyse des performances🎜rrreee🎜Ouvrez le navigateur et entrez http://localhost:8080/flamegraph.svg pour afficher le graphique de flamme généré. 🎜🎜Conclusion : 🎜Grâce à l'introduction ci-dessus, vous pouvez apprendre à utiliser Docker pour la surveillance des conteneurs et l'analyse des performances. Que vous utilisiez les propres outils de Docker ou des outils tiers, vous pouvez facilement visualiser les indicateurs d'état et de performances du conteneur. Dans le même temps, grâce à l’analyse des performances des conteneurs, les goulots d’étranglement des performances peuvent être identifiés et optimisés pour améliorer la stabilité et les performances des applications. 🎜

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!

Déclaration:
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