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.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]
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
,可以查看监控面板。
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
Prometheus est un système de surveillance open source qui peut surveiller les conteneurs via la configuration et fournir un panneau de surveillance visuel.
http://localhost:9090
. 🎜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!