Maison Opération et maintenance exploitation et maintenance Linux 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

Nov 08, 2023 am 09:54 AM
docker 性能 监控

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]
Copier après la connexion

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]
Copier après la connexion
  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
Copier après la connexion

② 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
Copier après la connexion

② 配置Prometheus

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

scrape_configs:
  - job_name: 'docker'
    metrics_path: '/metrics'
    static_configs:
      - targets: ['<docker_host>:<exporter_port>']
Copier après la connexion

③ 启动Prometheus

./prometheus --config.file=prometheus.yml
Copier après la connexion

④ 查看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)
Copier après la connexion

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

示例代码:

① 安装FlameGraph

git clone https://github.com/brendangregg/FlameGraph.git
Copier après la connexion

② 执行性能分析

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
Copier après la connexion

打开浏览器,输入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 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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Enseignement du nœud PI: Qu'est-ce qu'un nœud PI? Comment installer et configurer le nœud PI? Enseignement du nœud PI: Qu'est-ce qu'un nœud PI? Comment installer et configurer le nœud PI? Mar 05, 2025 pm 05:57 PM

Explication détaillée et guide d'installation pour les nœuds de pignon Cet article introduira l'écosystème de pignon en détail - nœuds PI, un rôle clé dans l'écosystème de pignon et fournir des étapes complètes pour l'installation et la configuration. Après le lancement du réseau de test de la blockchain pèse, les nœuds PI sont devenus une partie importante de nombreux pionniers participant activement aux tests, se préparant à la prochaine version du réseau principal. Si vous ne connaissez pas encore Pinetwork, veuillez vous référer à ce qu'est Picoin? Quel est le prix de l'inscription? PI Utilisation, exploitation minière et sécurité. Qu'est-ce que Pinetwork? Le projet Pinetwork a commencé en 2019 et possède sa pièce exclusive de crypto-monnaie PI. Le projet vise à en créer un que tout le monde peut participer

Comparaison des performances de différents frameworks Java Comparaison des performances de différents frameworks Java Jun 05, 2024 pm 07:14 PM

Comparaison des performances de différents frameworks Java : Traitement des requêtes API REST : Vert.x est le meilleur, avec un taux de requêtes de 2 fois SpringBoot et 3 fois Dropwizard. Requête de base de données : HibernateORM de SpringBoot est meilleur que l'ORM de Vert.x et Dropwizard. Opérations de mise en cache : le client Hazelcast de Vert.x est supérieur aux mécanismes de mise en cache de SpringBoot et Dropwizard. Cadre approprié : choisissez en fonction des exigences de l'application. Vert.x convient aux services Web hautes performances, SpringBoot convient aux applications gourmandes en données et Dropwizard convient à l'architecture de microservices.

Comment installer Deepseek Comment installer Deepseek Feb 19, 2025 pm 05:48 PM

Il existe de nombreuses façons d'installer Deepseek, notamment: Compiler à partir de Source (pour les développeurs expérimentés) en utilisant des packages précompilés (pour les utilisateurs de Windows) à l'aide de conteneurs Docker (pour le plus pratique, pas besoin de s'inquiéter de la compatibilité), quelle que soit la méthode que vous choisissez, veuillez lire Les documents officiels documentent soigneusement et les préparent pleinement à éviter des problèmes inutiles.

Comment optimiser les performances des programmes multi-thread en C++ ? Comment optimiser les performances des programmes multi-thread en C++ ? Jun 05, 2024 pm 02:04 PM

Les techniques efficaces pour optimiser les performances multithread C++ incluent la limitation du nombre de threads pour éviter les conflits de ressources. Utilisez des verrous mutex légers pour réduire les conflits. Optimisez la portée du verrou et minimisez le temps d’attente. Utilisez des structures de données sans verrouillage pour améliorer la simultanéité. Évitez les attentes occupées et informez les threads de la disponibilité des ressources via des événements.

Déployer des applications JavaEE à l'aide de conteneurs Docker Déployer des applications JavaEE à l'aide de conteneurs Docker Jun 05, 2024 pm 08:29 PM

Déployez des applications Java EE à l'aide de conteneurs Docker : créez un fichier Docker pour définir l'image, créez l'image, exécutez le conteneur et mappez le port, puis accédez à l'application dans le navigateur. Exemple d'application JavaEE : l'API REST interagit avec la base de données, accessible sur localhost après déploiement via Docker.

Comparaison des performances du C++ avec d'autres langages Comparaison des performances du C++ avec d'autres langages Jun 01, 2024 pm 10:04 PM

Lors du développement d'applications hautes performances, le C++ surpasse les autres langages, notamment dans les micro-benchmarks. Dans les benchmarks macro, les mécanismes de commodité et d'optimisation d'autres langages tels que Java et C# peuvent mieux fonctionner. Dans des cas pratiques, C++ fonctionne bien dans le traitement d'images, les calculs numériques et le développement de jeux, et son contrôle direct de la gestion de la mémoire et de l'accès au matériel apporte des avantages évidents en termes de performances.

Quelle est la performance des générateurs de nombres aléatoires dans Golang ? Quelle est la performance des générateurs de nombres aléatoires dans Golang ? Jun 01, 2024 pm 09:15 PM

La meilleure façon de générer des nombres aléatoires dans Go dépend du niveau de sécurité requis par votre application. Faible sécurité : utilisez le package math/rand pour générer des nombres pseudo-aléatoires, adaptés à la plupart des applications. Haute sécurité : utilisez le package crypto/rand pour générer des octets aléatoires cryptographiquement sécurisés, adaptés aux applications qui nécessitent un caractère aléatoire plus élevé.

Comparaison des performances des frameworks Java Comparaison des performances des frameworks Java Jun 04, 2024 pm 03:56 PM

Selon les benchmarks, pour les petites applications hautes performances, Quarkus (démarrage rapide, mémoire faible) ou Micronaut (TechEmpower excellent) sont des choix idéaux. SpringBoot convient aux grandes applications full-stack, mais a des temps de démarrage et une utilisation de la mémoire légèrement plus lents.

See all articles