ホームページ 運用・保守 Linuxの運用と保守 Docker を使用してコンテナーの監視とパフォーマンス分析を行う方法

Docker を使用してコンテナーの監視とパフォーマンス分析を行う方法

Nov 08, 2023 am 09:54 AM
docker パフォーマンス モニター

Docker を使用してコンテナーの監視とパフォーマンス分析を行う方法

Docker をコンテナの監視とパフォーマンス分析に使用する方法

概要:
Docker は、アプリケーションとその依存関係を分離する人気のコンテナ化プラットフォームです。スタンドアロンのコンテナーで実行するアプリケーション。ただし、コンテナーの数が増加するにつれて、コンテナーの監視とパフォーマンス分析の重要性が増します。この記事では、Docker を使用してコンテナーの監視とパフォーマンス分析を行う方法を紹介し、具体的なコード例をいくつか示します。

  1. Docker 独自のコンテナ監視ツールを使用する
    Docker は、コンテナのステータスとパフォーマンス インジケータを簡単に表示できる独自のコンテナ監視ツールをいくつか提供しています。

1.1 Docker Stats コマンド
Docker Stats コマンドを使用すると、CPU、メモリ、ネットワーク、ディスクなど、コンテナーのリソース使用状況をリアルタイムで表示できます。

サンプル コード:

docker stats [container_name]
ログイン後にコピー

1.2 Docker Top コマンド
Docker Top コマンドは、コンテナ内で実行されているプロセスとリソースの使用状況を表示できます。

サンプル コード:

docker top [container_name]
ログイン後にコピー
  1. コンテナの監視にサードパーティ ツールを使用する
    Docker 独自の監視ツールに加えて、コンテナを監視および監視できるサードパーティ ツールもいくつかあります。コンテナのパフォーマンスをより包括的に分析します。

2.1 cAdvisor
cAdvisor は、コンテナーのリソース使用状況とパフォーマンス指標を提供できるオープンソースのコンテナー監視ツールです。

サンプルコード:

① cAdvisor をインストールします

docker run -d --name=cadvisor --privileged=true -p 8080:8080 -v /var/run/docker.sock:/var/run/docker.sock google/cadvisor:latest
ログイン後にコピー

② cAdvisor の監視情報を確認します

ブラウザを開いて 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 の統計 API を使用してコンテナーのパフォーマンス指標を取得する

Docker は、コンテナーのパフォーマンス指標を取得するための統計 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 では、生成されたフレーム グラフを表示できます。

結論:

上記の紹介を通じて、コンテナの監視とパフォーマンス分析に Docker を使用する方法を学ぶことができます。 Docker 独自のツールを使用する場合でも、サードパーティ ツールを使用する場合でも、コンテナーのステータスとパフォーマンス インジケーターを簡単に表示できます。同時に、コンテナーのパフォーマンス分析を通じて、パフォーマンスのボトルネックを特定して最適化し、アプリケーションの安定性とパフォーマンスを向上させることができます。

以上がDocker を使用してコンテナーの監視とパフォーマンス分析を行う方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

PIノードティーチング:PIノードとは何ですか? PIノードをインストールしてセットアップする方法は? PIノードティーチング:PIノードとは何ですか? PIノードをインストールしてセットアップする方法は? Mar 05, 2025 pm 05:57 PM

ピン張りのノードの詳細な説明とインストールガイドこの記事では、ピネットワークのエコシステムを詳細に紹介します - PIノードは、ピン系生態系における重要な役割であり、設置と構成の完全な手順を提供します。 Pinetworkブロックチェーンテストネットワークの発売後、PIノードは多くの先駆者の重要な部分になり、テストに積極的に参加し、今後のメインネットワークリリースの準備をしています。まだピン張りのものがわからない場合は、ピコインとは何かを参照してください。リストの価格はいくらですか? PIの使用、マイニング、セキュリティ分析。パインワークとは何ですか?ピン競技プロジェクトは2019年に開始され、独占的な暗号通貨PIコインを所有しています。このプロジェクトは、誰もが参加できるものを作成することを目指しています

さまざまな Java フレームワークのパフォーマンスの比較 さまざまな Java フレームワークのパフォーマンスの比較 Jun 05, 2024 pm 07:14 PM

さまざまな Java フレームワークのパフォーマンス比較: REST API リクエスト処理: Vert.x が最高で、リクエスト レートは SpringBoot の 2 倍、Dropwizard の 3 倍です。データベース クエリ: SpringBoot の HibernateORM は Vert.x や Dropwizard の ORM よりも優れています。キャッシュ操作: Vert.x の Hazelcast クライアントは、SpringBoot や Dropwizard のキャッシュ メカニズムよりも優れています。適切なフレームワーク: アプリケーションの要件に応じて選択します。Vert.x は高パフォーマンスの Web サービスに適しており、SpringBoot はデータ集約型のアプリケーションに適しており、Dropwizard はマイクロサービス アーキテクチャに適しています。

DeepSeekをインストールする方法 DeepSeekをインストールする方法 Feb 19, 2025 pm 05:48 PM

DeepSeekをインストールするには、Dockerコンテナ(最も便利な場合は、互換性について心配する必要はありません)を使用して、事前コンパイルパッケージ(Windowsユーザー向け)を使用してソースからコンパイル(経験豊富な開発者向け)を含む多くの方法があります。公式文書は慎重に文書化され、不必要なトラブルを避けるために完全に準備します。

C++ でマルチスレッド プログラムのパフォーマンスを最適化するにはどうすればよいですか? C++ でマルチスレッド プログラムのパフォーマンスを最適化するにはどうすればよいですか? Jun 05, 2024 pm 02:04 PM

C++ マルチスレッドのパフォーマンスを最適化するための効果的な手法には、リソースの競合を避けるためにスレッドの数を制限することが含まれます。競合を軽減するには、軽量のミューテックス ロックを使用します。ロックの範囲を最適化し、待ち時間を最小限に抑えます。ロックフリーのデータ構造を使用して同時実行性を向上させます。ビジー待機を回避し、イベントを通じてリソースの可用性をスレッドに通知します。

Dockerコンテナを使用したJavaEEアプリケーションのデプロイ Dockerコンテナを使用したJavaEEアプリケーションのデプロイ Jun 05, 2024 pm 08:29 PM

Docker コンテナを使用した Java EE アプリケーションのデプロイ: Dockerfile を作成してイメージを定義し、イメージを構築し、コンテナを実行してポートをマップし、ブラウザでアプリケーションにアクセスします。サンプル JavaEE アプリケーション: REST API はデータベースと対話し、Docker 経由でデプロイ後にローカルホストでアクセスできます。

C++ と他の言語のパフォーマンスの比較 C++ と他の言語のパフォーマンスの比較 Jun 01, 2024 pm 10:04 PM

高パフォーマンスのアプリケーションを開発する場合、C++ は、特にマイクロベンチマークで他の言語よりも優れたパフォーマンスを発揮します。マクロベンチマークでは、Java や C# などの他の言語の利便性と最適化メカニズムの方がパフォーマンスが優れている場合があります。実際のケースでは、C++ は画像処理、数値計算、ゲーム開発で優れたパフォーマンスを発揮し、メモリ管理とハードウェア アクセスを直接制御することで明らかなパフォーマンス上の利点をもたらします。

Golang の乱数ジェネレーターのパフォーマンスはどのくらいですか? Golang の乱数ジェネレーターのパフォーマンスはどのくらいですか? Jun 01, 2024 pm 09:15 PM

Go で乱数を生成する最適な方法は、アプリケーションに必要なセキュリティのレベルによって異なります。低セキュリティ: math/rand パッケージを使用して、ほとんどのアプリケーションに適した疑似乱数を生成します。高いセキュリティ: crypto/rand パッケージを使用して、より強力なランダム性を必要とするアプリケーションに適した、暗号的に安全なランダム バイトを生成します。

Java フレームワークのパフォーマンス比較 Java フレームワークのパフォーマンス比較 Jun 04, 2024 pm 03:56 PM

ベンチマークによると、小規模で高性能なアプリケーションの場合、Quarkus (高速起動、低メモリ) または Micronaut (TechEmpower に優れた) が理想的な選択肢です。 SpringBoot は大規模なフルスタック アプリケーションに適していますが、起動時間とメモリ使用量が若干遅くなります。

See all articles