Docker を使用した nGrinder パフォーマンス テスト プラットフォームの導入プロセスの分析

Docker を使用した nGrinder パフォーマンス テスト プラットフォームの導入プロセスの分析

nGrinderとは何ですか?

nGrinder は、スクリプトの作成、テストの実行、監視、結果レポートの生成を同時に実行できるストレス テスト用のプラットフォームです。オープンソースの nGrinder は、不便さを解消し、統合された環境を提供することで、ストレス テストを簡単に実行できるようにします。これは、Apache License Version 2.0 に基づいてライセンスされており、韓国最大のインターネット企業である NHN Corporation の開発チームによって再設計および改良された Grinder に基づくオープンソースの Web パフォーマンス テスト プラットフォームです。

http://naver.github.io/ngrinder/

nGrinderは3つのコンポーネントで構成されています

コントローラー: パフォーマンス テスターがテスト スクリプトを作成し、テスト関連のパラメーターを構成し、テスト スクリプトをエージェントに自動的に配布できるようにする Web アプリケーション。

エージェント: プロキシ サーバー上でテスト プロセスとスレッドをロードして実行します。テスト対象のサーバーにデプロイしないことをお勧めします。

モニター: テスト対象サーバーのシステム パフォーマンス (CPU/メモリなど) を監視するために使用され、テスト対象サーバーに展開する必要があります。

nGrinder アーキテクチャ

仕組み

コントローラと複数のエージェントで構成されます。テスト シナリオはコントローラ (ブラウザ アクセス) を介して確立され、その後、ストレス テストのためにエージェントに配布されます。
ユーザーは特定の仕様に従ってテスト スクリプトを作成し、コントローラーはスクリプトと必要なリソースをエージェントに配布し、Jython を使用して実行します。
スクリプト実行中に、実行ステータス、応答時間を収集し、対象サーバーの実行ステータスをテストするなどします。これらのデータを保存してテスト レポートを生成し、動的なグラフとデータ テーブルの形式で表示します。ユーザーは、テスト対象サーバーの TPS、CPU、メモリを簡単に確認できます。
展開

1. 複数のエージェントを備えた単一のコントローラ

2. 複数のコントローラーと複数のエージェント

Docker 上で nGrinder を実行する

コントローラーを実行する

docker pull ngrinder/コントローラー
docker run -d -v ~/ngrinder-controller:/opt/ngrinder-controller --name コントローラ -p 80:80 -p 16001:16001 -p 12000-12009:12000-12009 ngrinder/コントローラ

コントローラーは、テスト履歴と構成データを維持するために、/opt/ngrinder-controller の下にデータ フォルダーを作成します。データを永続化するには、コンテナ上のフォルダー /opt/ngrinder-controller をホスト上のフォルダーにマップする必要があります。

ポート情報:

80: デフォルトのコントローラー Web UI ポート。

9010-9019: エージェントはこれらのポートを介してコントローラ クラスターに接続します。

12000-12029: コントローラーはこれらのポートを通じてストレス テストを配布します。

エージェントを実行する

docker pull ngrinder/エージェント
docker run -d --name エージェント --link コントローラー:コントローラー ngrinder/agent

docker-compose クイックデプロイメント

docker-compose サービスを使用して、コントローラーと 2 つのエージェントを配置します。

ymlを書く

vim docker-compose.yml

ngrinder コントローラ 1:
 画像: ngrinder/コントローラ
 コンテナ名: ngrinder-controller-1
 ホスト名: ngrinder-controller-1
 ポート:
  - 8087:80
  - 16001:16001
  - 12000-12009:12000-12009
 ボリューム:
  - /data/ngrinder/コントローラ-1:/opt/ngrinder-コントローラ
ngrinderエージェント1:
 画像: ngrinder/エージェント
 コンテナ名: ngrinder-agent-1
 ホスト名: ngrinder-agent-1
 ボリューム:
  - /data/ngrinder/agent-1:/opt/ngrinder-agent
 指示:
  - 10.255.254.25:8087
ngrinderエージェント2:
 画像: ngrinder/エージェント
 コンテナ名: ngrinder-agent-2
 ホスト名: ngrinder-agent-2
 ボリューム:
  - /data/ngrinder/agent-2:/opt/ngrinder-agent
 指示:
  - 10.255.254.25:8087

起動する

docker-compose -f docker-compose.yml -d アップ

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • Dockerイントラネット侵入FRP展開の実装プロセスの分析
  • Docker を使用して MySQL および Redis サービスをデプロイする方法
  • Docker に Tomcat をインストールし、Springboot プロジェクトの WAR パッケージをデプロイする方法
  • Docker コンテナで DockerFile を使用して複数の Tomcat サービスをデプロイする手順
  • Docker イメージの作成、アップロード、プル、およびデプロイ操作 (Alibaba Cloud を使用)
  • docker+gitlab+gitlab-runnerの詳細なデプロイメント
  • Docker を使用してスタンドアロン Pulsar とクラスター化された Redis をデプロイする方法 (開発アーティファクト)
  • Docker デプロイメント Consul 構成プロセスの分析

<<:  uniapp は日付と時刻の選択機能を実装します

>>:  MySQLデータベースの名前を高速かつ安全に変更する方法(3種類)

推薦する

練習と面接のための Linux シェル スクリプトのヒント 9 つを共有する

予防1) 先頭にインタープリターを追加します: #!/bin/bash 2) 構文のインデントに 4...

JavaScript キャンバスは影付きのグラフィックとテキストを実装します

キャンバスを使用して、参照用の影付きのグラフィックとテキストを作成します。具体的な内容は次のとおりで...

データベースのデフォルトパスを変更した後にmysqlが起動できない問題の解決策

序文mysql がデフォルトのデータベース パスを変更したため、サービスを開始できませんでした。ログ...

Linux で FTP イメージ サーバーをインストールして展開する方法

Linux で FTP サーバーを設定するためのチュートリアルを参照してください https://w...

Tomcat を再デプロイした後にイメージやその他のリソースが自動的に削除される問題を解決します

昨日は写真をアップロードしてリンクを返す機能を実装していました。プロジェクトが Tomcat に再デ...

MySQL 内部結合の使用例 (必読)

文法規則 列名を選択 テーブル名1から INNER JOIN テーブル名2 ON テーブル名1.列名...

リモートログインとポート公開を防ぐためのLinuxサーバー構成IPホワイトリスト

序文ブロガーが使用しているサーバーは Alibaba Cloud から購入したものです。実際、Ali...

httpsウェブサイトにリファラーhttpsとhttpジャンプリファラーを送信させる方法

この記事では、HTTP プロトコルのリファラーのメタデータ パラメータの提案について説明します。この...

CSS グリッドレイアウトの完全ガイド

Grid は 2 次元のグリッド レイアウト システムです。これを使用すると、本質的にはハック メソ...

html リンク タグ タイトル属性 改行 マウス ホバー プロンプト コンテンツ 改行効果

オブジェクト上にマウスを移動したときにコンテンツ(タイトル属性の内容)を折り返す方法、HTML タイ...

SNMP4J サーバー接続タイムアウト問題の解決策

弊社のネットワーク管理センターは管理センター兼サーバーとして機能します!各管理対象デバイスは、TCP...

LinuxのバックグラウンドでPythonプログラムを実行するいくつかの方法

1. 最初の方法は、unhup コマンドを直接使用してプログラムをバックグラウンドで実行することです...

Vue で SVG アイコンを導入する 2 つの方法

Vue で SVG アイコンを導入する方法Vue で svg アイコンを導入する方法 1インストール...

JavaScriptのプリコンパイルを見てみましょう(概要)

JSランニング三部作js実行コードは3つのステップに分かれています構文解析プリコンパイル解釈Jav...

Mac Docker x509証明書の問題を解決する

質問最近、プライベートミラーセンターにログインする必要がありましたが、ログイン時にエラーメッセージが...