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 で利用可能なネットワーク インターフェイスを表示する方法

序文Linux システムをインストールした後の最も一般的なタスクは、ネットワーク構成です。もちろん、...

CentOS 7でsambaを使用してフォルダーを共有するための完全な手順

序文Samba は、サーバー プログラムとクライアント プログラムで構成され、Linux システム上...

Linux で完全な Samba サーバーを構築する方法 (CentOS バージョン)

序文smb は、クライアントとサーバー間の Web 接続および情報通信に使用できるプロトコルの名前で...

TypeScript のユニオン型、交差型、型ガード

目次1. ユニオンタイプ2. クロスオーバータイプ3. 型保護3.1 カスタム型保護3.2 保護の種...

MySQLデータベースバックアップのさまざまな実装方法の概要

この記事では、MySQL データベースのバックアップを実装するさまざまな方法について説明します。ご参...

JS で if 判定をスムーズに行う方法

目次序文コードの実装アイデア 1アイデア2要約する参照ドキュメント序文プロジェクト内の小さな要件ポイ...

MySQL ストアド プロシージャの権限の問題の概要

MySQL ストアド プロシージャは、確かに、非常にまれな使用シナリオのように見えます。この問題は、...

CSSで制御可能な点線を実装する方法

序文CSS を使用して点線を生成するのは、フロントエンド開発者にとっては簡単です。一般的に、これを実...

Tomcatのデフォルトプログラム公開パスの使用と変更についての説明

tomcat7 のデフォルトのプログラム公開パスは tomcat/webapps/ROOT/ です。...

CentOS7 で MySQL のスケジュールされた自動バックアップを実装する方法

実稼働環境で起こる最も嬉しいことは、シナリオによっては、更新または削除時にパラメータを無視せざるを得...

Docker-Composeコマンドの使い方の詳しい説明

Docker コンテナはさまざまな方法で管理およびデプロイできます。 Docker コマンドを直接使...

Zabbix を使用して Nginx/Tomcat/MySQL を監視する方法の詳細なチュートリアル

目次ZabbixはNginxを監視するZabbixはTomcatを監視するZabbixはMySQLを...

Vue-CLI マルチページディレクトリパッケージ化手順の記録

ページディレクトリ構造 デフォルトの HTML テンプレート ファイル public/index.h...

MySQL 5.7.9 シャットダウン構文例の詳細な説明

mysql-5.7.9 では、ついにシャットダウン構文が提供されます。以前は、MySQL データベー...

MySQL グローバルロックとテーブルレベルロックの具体的な使用法

目次序文グローバルロックテーブルロックテーブルロックメタデータ ロック (MDL ロック)要約する参...