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種類)

推薦する

CocosCreator 学習モジュールスクリプト

Cocos Creator モジュラースクリプトCocos Creator を使用すると、コードを複...

CSS3で線形グラデーションを実装するためのコードの詳細な説明

序文デモでは古いバージョンのブラウザのグラデーションが実装されています[IE9-]。 IE9 より前...

よく使われるn番目の子セレクターをまとめる

序文フロントエンドプログラミングでは、奇数、偶数などの数値を受け入れることができる nth-chil...

Linux のよく使うコマンドの使い方を詳しく解説(第 2 回)———— テキストエディタのコマンド vi/vim

vi/vim の紹介どちらもマルチモード エディターです。違いは、vim が vi のアップグレー...

DockerのTLS(SSL)証明書の有効期限の問題を解決する

問題現象: [root@localhost ~]# docker イメージをプル xxx.com.c...

MySQL データベース SELECT クエリ式分析

データ管理の大部分は検索であり、SELECT はその大部分を占めています。 SELECT selec...

HTMLページ内の検索機能を完了する

最近、たくさんの人に改変してもらったフレームワークに取り組んでいます。毎日コードを見ていると目が回り...

Ubuntu 20.04 Firefox でビデオを再生できない (Flash プラグインがない) 場合の解決策

1. Flashプラグインパッケージのダウンロードアドレス: https://get.adobe.c...

Vue で円形プログレスバーを実装する例

データ表示は、常にあらゆる職業の人々が求めているものです。特にフロントエンド開発業界では、データを表...

CSS で実装された円形のプログレスバー

成果を達成する 実装コードhtml <div class="wrap"&g...

DIV共通属性コレクション

1. 物件リストコードをコピーコードは次のとおりです。色: #999999 テキスト色フォントファミ...

Vue での this.$set の動的データバインディングのケーススタディ

インターネット上の this.$set の説明はわかりにくいと感じます。単一データ、オブジェクト、配...

CSS シャドウ効果の比較: ドロップシャドウとボックスシャドウ

Drop-shadow と box-shadow はどちらも影効果(ハロー効果)のための CSS プ...

CentOS7 のシステム サービスに Nginx を追加する方法

導入コンパイル、インストール、問題の解決後、Nginx は正常に動作していますが、現時点では Ngi...