Analyse des Bereitstellungsprozesses der Leistungstestplattform nGrinder mit Docker

Analyse des Bereitstellungsprozesses der Leistungstestplattform nGrinder mit Docker

Was ist nGrinder?

nGrinder ist eine Plattform für Stresstests, mit der Sie gleichzeitig Skripte erstellen, Tests ausführen, überwachen und Ergebnisberichte erstellen können. Der Open Source nGrinder bietet eine einfache Möglichkeit, Stresstests durchzuführen, indem er Unannehmlichkeiten beseitigt und eine integrierte Umgebung bereitstellt. Es ist unter der Apache-Lizenz Version 2.0 lizenziert und ist eine Open-Source-Web-Performance-Testplattform auf Basis von Grinder, die vom Entwicklungsteam der NHN Corporation, dem größten Internetunternehmen Südkoreas, neu gestaltet und verbessert wurde.

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

nGrinder besteht aus drei Komponenten

Controller: Eine Webanwendung, mit der Leistungstester Testskripte erstellen, testbezogene Parameter konfigurieren und Testskripte automatisch an Agenten verteilen können.

Agent: Laden und führen Sie den Testprozess und die Threads auf dem Proxyserver aus. Es wird empfohlen, ihn nicht auf dem zu testenden Server bereitzustellen.

Monitor: Wird verwendet, um die Systemleistung des zu testenden Servers zu überwachen (z. B. CPU/Speicher) und muss auf dem zu testenden Server bereitgestellt werden.

nGrinder-Architektur

So funktioniert es

Es besteht aus einem Controller und mehreren Agenten. Das Testszenario wird über den Controller (Browserzugriff) eingerichtet und dann zum Stresstest an den Agenten verteilt.
Benutzer schreiben Testskripte gemäß bestimmter Spezifikationen und der Controller verteilt die Skripte und erforderlichen Ressourcen an den Agenten und führt sie mithilfe von Jython aus.
Erfassen Sie während der Skriptausführung den Laufstatus, die Antwortzeit, testen Sie den Laufstatus des Zielservers usw. Und speichern Sie diese Daten, um einen Testbericht zu erstellen, der in Form von dynamischen Diagrammen und Datentabellen angezeigt wird. Benutzer können TPS, CPU und Speicher des getesteten Servers einfach sehen.
Einsatz

1. Einzelner Controller mit mehreren Agenten

2. Mehrere Controller und mehrere Agenten

Ausführen von nGrinder auf Docker

Führen Sie den Controller aus

Docker Pull Ngrinder/Controller
docker run -d -v ~/ngrinder-controller:/opt/ngrinder-controller --name controller -p 80:80 -p 16001:16001 -p 12000-12009:12000-12009 ngrinder/controller

Der Controller erstellt einen Datenordner unter /opt/ngrinder-controller, um den Testverlauf und die Konfigurationsdaten zu verwalten. Um die Daten dauerhaft zu speichern, sollten Sie den Ordner /opt/ngrinder-controller im Container einem Ordner auf dem Host zuordnen.

Hafeninformationen:

80: Standard-Web-UI-Port des Controllers.

9010–9019: Agenten stellen über diese Ports eine Verbindung zum Controller-Cluster her.

12000-12029: Der Controller verteilt Stresstests über diese Ports.

Ausführen des Agenten

Docker-Pull Ngrinder/Agent
docker run -d --name agent --link controller:controller ngrinder/agent

Docker-Compose - schnelle Bereitstellung

Verwenden Sie den Docker-Compose-Dienst, um einen Controller und zwei Agenten einzurichten:

Schreiben Sie yml

vim docker-compose.yml

ngrinder-controller-1:
 Bild: ngrinder/controller
 Containername: ngrinder-controller-1
 Hostname: ngrinder-controller-1
 Häfen:
  8087:80
  16001: 16001
  12000 12009:12000 12009
 Bände:
  – /data/ngrinder/controller-1:/opt/ngrinder-controller
ngrinder-agent-1:
 Bild: ngrinder/agent
 Containername: ngrinder-agent-1
 Hostname: ngrinder-agent-1
 Bände:
  – /data/ngrinder/agent-1:/opt/ngrinder-agent
 Befehl:
  - 10.255.254.25:8087
ngrinder-agent-2:
 Bild: ngrinder/agent
 Containername: ngrinder-agent-2
 Hostname: ngrinder-agent-2
 Bände:
  – /data/ngrinder/agent-2:/opt/ngrinder-agent
 Befehl:
  - 10.255.254.25:8087

Start-up

docker-compose -f docker-compose.yml -d up

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird.

Das könnte Sie auch interessieren:
  • Analyse des Implementierungsprozesses der Docker-Intranet-Penetration-FRP-Bereitstellung
  • So stellen Sie MySQL- und Redis-Dienste mit Docker bereit
  • So installieren Sie Tomcat in Docker und stellen das Springboot-Projekt-War-Paket bereit
  • Schritte zum Bereitstellen mehrerer Tomcat-Dienste mithilfe von DockerFile im Docker-Container
  • Erstellen, Hochladen, Abrufen und Bereitstellen von Docker-Images (mithilfe von Alibaba Cloud)
  • Detaillierte Bereitstellung von Docker+Gitlab+Gitlab-Runner
  • So stellen Sie eigenständigen Pulsar und geclustertes Redis mit Docker bereit (Entwicklungsartefakt)
  • Analyse des Consul-Konfigurationsprozesses für die Docker-Bereitstellung

<<:  uniapp implementiert Datums- und Zeitauswahl

>>:  Schnelle und sichere Methode zum Umbenennen einer MySQL-Datenbank (3 Arten)

Artikel empfehlen

Detaillierte Erläuterung des Beispiels der Caching-Methode von Vue

Kürzlich wurde die neue Anforderung „Front-End-Ca...

Kenntnisse über die MySQL Memory-Speicher-Engine

Wissenspunkte zur Speicher-Storage-Engine Die Spe...

Detaillierte Erklärung der Lösung zur Bildverformung unter Flex-Layout

Flex-Layout ist heutzutage eine häufig verwendete...

Detaillierte Erklärung der MySQL-Binlog-Verwendung

binlog ist eine binäre Protokolldatei, die alle D...

Ubuntu 20.04 CUDA- und cuDNN-Installationsmethode (grafisches Tutorial)

CUDA-Installation, cuda herunterladen Geben Sie d...

Implementierung der Nginx-Domänennamenweiterleitung für den HTTPS-Zugriff

Ein Wort vorab: Plötzlich erhielt ich die Aufgabe...

Eine kurze Diskussion über die Definition und Vorsichtsmaßnahmen von H-Tags

Den Ergebnissen zufolge gibt es für die Definitio...

JS implementiert die zufällige Generierung von Bestätigungscodes

In diesem Artikelbeispiel wird der spezifische JS...

Detaillierte Analyse der MySQL-Sperrblockierung

Bei der täglichen Wartung werden Threads häufig b...

Detaillierte Erklärung zur Verwendung von ES6 Promise

Inhaltsverzeichnis Was ist ein Versprechen? Verwe...

Javascript-Betriebsmechanismus „Event Loop“

Inhaltsverzeichnis 1. Vier Konzepte 1. JavaScript...