Analyse des Benchmarking-Prozesses von Sysbench für MySQL

Analyse des Benchmarking-Prozesses von Sysbench für MySQL

Vorwort

1. Benchmarking ist eine Art Leistungstest, bei dem der Schwerpunkt auf quantitativen, reproduzierbaren und vergleichbaren Tests bestimmter Leistungsindikatoren einer Klasse von Testobjekten liegt.

Um es noch besser zu verstehen: Benchmarking dient dazu, durch Benchmarking zu einem bestimmten Zeitpunkt ein bekanntes Leistungsniveau (Baseline genannt) festzulegen. Wenn sich die Hardware- und Softwareumgebung des Systems ändert, wird erneut Benchmarking durchgeführt, um die Auswirkungen dieser Änderungen auf die Leistung zu bestimmen. Dies ist auch die häufigste Verwendung von Benchmarking. Zu den weiteren Einsatzmöglichkeiten gehören die Ermittlung von Leistungsgrenzen bei bestimmten Belastungsstufen, die Verwaltung von System- oder Umgebungsänderungen und die Ermittlung von Bedingungen, die zu Leistungsproblemen führen könnten.

2. Die Rolle des Benchmarkings:

Bei den meisten Webanwendungen treten Systemengpässe häufig leicht auf der Datenbankseite auf. Der Grund ist einfach: Andere Faktoren in Webanwendungen, wie Netzwerkbandbreite, Lastausgleichsknoten, Anwendungsserver (einschließlich CPU, Speicher, Festplattenlicht, Anzahl der Verbindungen usw.) und Cache, können durch horizontale Erweiterung (allgemein als Addition von Maschinen bezeichnet) leicht Leistungsverbesserungen erzielen. Aufgrund der Anforderungen an die Datenkonsistenz ist es bei Datenbanken wie MySQL nicht möglich, den Druck beim Schreiben von Daten in die Datenbank durch Hinzufügen von Maschinen zu verteilen. Obwohl der Druck durch Front-End-Caching (Redis usw.), Trennung von Lesen und Schreiben sowie Sharding von Bibliotheken und Tabellen verringert werden kann, unterliegt er im Vergleich zur horizontalen Erweiterung anderer Systemkomponenten zu vielen Einschränkungen.
Der Zweck des Datenbank-Benchmarkings besteht darin, die Leistung der Datenbank unter der aktuellen Konfiguration (einschließlich Hardwarekonfiguration, Betriebssystem, Datenbankeinstellungen usw.) zu analysieren, um die Leistungsschwelle der Datenbank zu ermitteln und die Konfiguration entsprechend den tatsächlichen Systemanforderungen anzupassen. Darüber hinaus wird das Benchmarking von Datenbankservern häufig genutzt, um zu beobachten, wie sich die Leistung vor und nach Änderungen der Datenbankstruktur verändert.

3. Der Unterschied zwischen Benchmarktest und Stresstest:

In der Praxis werden Benchmarktests und Stresstests häufig verwechselt. Benchmarktests können als Stresstest für das System verstanden werden. Beim Benchmarktest wird jedoch die Geschäftslogik nicht berücksichtigt. Er ist einfacher, direkter und leichter zu testen. Daten können von Tools generiert werden und müssen nicht real sein. Beim Stresstest wird im Allgemeinen die Geschäftslogik (z. B. Warenkorbgeschäft) berücksichtigt und es sind reale Daten erforderlich.

4. Benchmarking-Tools:

SysBench ist ein modulares, plattformübergreifendes, mehrthreadiges Benchmarktool, das hauptsächlich zur Bewertung der Datenbanklast unter verschiedenen Systemparametern verwendet wird. Es umfasst im Wesentlichen folgende Prüfungsarten:

1. CPU-Leistung

2. Disk-IO-Leistung

3. Scheduler-Leistung

4. Speicherbelegung und Übertragungsgeschwindigkeit

5. POSIX-Thread-Leistung

6. Datenbankleistung (OLTP-Benchmark)

Derzeit unterstützt Sysbench hauptsächlich drei Datenbanken: MySQL, pgsql und Oracle.

Installieren

yum -y installiere Sysbench

sysbench --help ##Überprüfen Sie, ob die Installation erfolgreich war

Freundliche Erinnerung: Wenn während der Installation ein Abhängigkeitspaket fehlt, sehen Sie hier nach

Datenaufbereitung

Vorbereiten

Datenbank sysbench_test erstellen;

Datenbanken anzeigen; #Überprüfen Sie die Datenbank

beenden #Beenden


2. Erste Schritte

find / -name oltp*.lua #Suchen Sie den Pfad des in Sysbench integrierten Datenschreibskripts, das später zum Ausführen von Befehlen verwendet wird

sysbench /usr/share/sysbench/oltp_read_write.lua --tables=5 --table_size=100 --mysql-user=root --mysql-password=xxx --mysql-host=192.168.0.103 --mysql-port=3306 --mysql-db=sysbench_test vorbereiten
#/usr/share/sysbench/oltp_read_write.lua: der Pfad der oben gefundenen integrierten Lese- und Schreibskripte von Sysbench
#--tables: Gibt die Anzahl der generierten Tabellen an. Hier werden fünf Tabellen festgelegt, was bedeutet, dass fünf Testtabellen generiert werden. Leser können diesen Wert entsprechend den tatsächlichen Anforderungen anpassen.
#--table_size: Gibt die Datenmenge an, die in der generierten Tabelle generiert wird. Das obige Beispiel zeigt, dass für jede Tabelle 100 Testdaten generiert werden. Der tatsächliche Wert kann nach Bedarf angepasst werden. Beispielsweise kann er auf 1000000 angepasst werden, was bedeutet, dass eine Million Testdaten generiert werden.
#--mysql-db: Der Name der Testdatenbank, mit der eine Verbindung hergestellt werden soll. Die oben erstellte Datenbank wird hier zum Testen verwendet.
#--mysql-user: der Benutzername der verbundenen Datenbank
#--mysql-password: das Passwort der verbundenen Datenbank
#--mysql-port: der Port der verbundenen Datenbankentwicklung

Fehler bei der Ausführungsaufforderung

Grund:

Die importierten Daten überschreiten den Standardwert der Datenbank

lösen:

Sie müssen die Datenkonfiguration auf dem Server ändern, auf dem MySQL installiert ist

vim /etc/meine.cnf

Ändern Sie den Wert von max_allowed_packet. Wenn er nicht vorhanden ist, fügen Sie am Ende eine Zeile hinzu.

Erneut erfolgreich ausführen, Daten auf dem MySQL-Client prüfen

Ausführen des Tests

sysbench /usr/share/sysbench/oltp_read_write.lua --mysql-user=root --mysql-password=xxx --mysql-host=192.168.0.103 --mysql-port=3306 --mysql-db=sysbench_test --tables=5 --table_size=100 --threads=10 --time=30 --report-interval=3 ausführen
#--threads: gibt die Anzahl der Threads an
#--time: gibt die Ausführungszeit an
#--report-interval: Gibt das Intervall in Sekunden an, in dem Testinformationen ausgegeben werden sollen
# run: zeigt an, dass ausgeführt wird. Andere Parameterinformationen sind dieselben wie oben und werden hier nicht erläutert.

Der obige Befehl gibt an, dass 10 gleichzeitige Threads verwendet werden, die Ausführungszeit 30 Sekunden beträgt und die Testinformationen alle 3 Sekunden ausgegeben werden.

Zu den für uns wichtigeren Informationen gehören:

  • Abfragen: Gesamtzahl der Abfragen und QPS
  • Transaktionen: Gesamtzahl der Transaktionen und TPS
  • Latenz – 95. Perzentil: Die Antwortzeit der ersten 95 % der Anfragen.

Bereinigen der Daten

Vergessen Sie nicht den letzten Feinschliff nach Abschluss des Tests. Eine große Menge an in der Datenbank gespeicherten Testdaten wirkt noch immer nach.

sysbench /usr/share/sysbench/oltp_read_write.lua --tables=5 --table_size=100 --mysql-user=root --mysql-password=xxx --mysql-host=192.168.0.103 --mysql-port=3306 --mysql-db=sysbench_test-Bereinigung
#Die Parameter hier werden entsprechend den Parametern der zuvor eingegebenen Daten ausgefüllt. Stellen Sie sicher, dass alle gelöscht sind.


Überprüfen Sie die Daten

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:
  • MySQL-Datenbank implementiert OLTP-Benchmark-Test basierend auf Sysbench
  • Methode zur Implementierung von Leistungstests der MySQL-Datenbank durch das Sysbench-Tool
  • Detailliertes Tutorial zum Sysbench-Stresstest von MySQL
  • Detailliertes Tutorial zur Verwendung von Sysbench zum Testen der MySQL-Leistung
  • Tutorial zur Verwendung von Sysbench zum Testen der MySQL-Leistung
  • Einführung in die Verwendung des MySQL Performance Stress Benchmark Tools Sysbench

<<:  Vue implementiert dynamische Routingdetails

>>:  Lösen Sie das Problem, dass bei Verwendung von GDB in Docker keine Haltepunkte eingegeben werden können

Artikel empfehlen

Neue Funktionen in MySQL 8.0: Hash Join

Das MySQL-Entwicklungsteam hat am 14. Oktober 201...

MySQL wählt den passenden Datentyp für die ID

Inhaltsverzeichnis Zusammenfassung der Distribute...

Installation von VMware Workstation unter Linux (Ubuntu)

Wenn Sie nicht wissen, wie das System auf dem Com...

So verwenden Sie webSocket zum Aktualisieren des Echtzeitwetters in Vue

Inhaltsverzeichnis Vorwort Informationen zu WebSo...

Detaillierter Prozess der Installation von nginx1.9.1 auf centos8

1.17.9 Wirklich leckerer Nginx-Download-Adresse: ...

MySQL-Unterabfrage und Details zur Verknüpfungstabelle

Inhaltsverzeichnis 1. Was ist eine Unterabfrage? ...

So installieren Sie Nginx in CentOS7

Installieren Sie die erforderliche Umgebung 1. gc...

Beispiel für die Verwendung von Docker zum Erstellen eines ELK-Protokollsystems

Die folgenden Installationen verwenden alle das V...

Detaillierte Erläuterung des MySQL 5.7.9-Shutdown-Syntaxbeispiels

mysql-5.7.9 bietet endlich eine Shutdown-Syntax: ...

Fünf Verzögerungsmethoden für die MySQL-Zeitblindinjektion

Fünf Verzögerungsmethoden für die MySQL-Zeitblind...