1. Hintergrund Sysbench ist ein Stresstest-Tool, mit dem die Hardwareleistung des Systems getestet und auch zum Benchmarking der Datenbank verwendet werden kann. Zu den von Sysbench unterstützten Tests gehören ein CPU-Rechenleistungstest, ein Test der Speicherzuweisung und Übertragungsgeschwindigkeit, ein Festplatten-E/A-Leistungstest, ein POSIX-Thread-Leistungstest, ein gegenseitiger Ausschlusstest und ein Datenbankleistungstest (OLTP-Benchmark-Test). Die derzeit unterstützten Datenbanken sind hauptsächlich MySQL-Datenbanken und PG-Datenbanken. Wenn ein neuer Server online geht, empfiehlt es sich, die Leistung des Servers zu testen. Am besten führen Sie einen horizontalen Vergleich mit den Leistungstestberichten früherer Server desselben Typs durch, um potenzielle Probleme zu identifizieren. Bevor eine neue Maschine online geht, führen Sie eine physische Überprüfung des Servers durch. Für die Datenbank können wir das Tool Sysbench verwenden, um Datenbank-Benchmarking durchzuführen. In der aktuellen Systemarchitektur lässt sich das Frontend relativ einfach horizontal erweitern, während die Datenbank relativ schwierig ist. Daher spielen Benchmarktests für die Datenbank eine sehr wichtige Rolle. 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 von MySQL zu ermitteln und die Konfiguration entsprechend den tatsächlichen Systemanforderungen anzupassen. 2. Installation von Sysbench 1) Installationsbefehl 2) Überprüfen Sie die installierte Version 3) Zeigen Sie die Informationen zur installierten Software an (hauptsächlich über den Befehl rpm). Fragen Sie die Installationsinformationen von Sysbench ab. Beim Testen von MySQL müssen Sie zum Testen das mit Sysbench gelieferte Lua-Skript verwenden. Wenn Sie die Schnellinstallationsmethode verwenden, lautet der Standardskriptpfad: Wenn es in diesem Befehl nicht enthalten ist, führen wir den folgenden Befehl aus, um alle auf dem lokalen Linux-System installierten Sysbench-Softwareprogramme zu überprüfen und zu finden: Auflistung der vollständigen Dateinamen aller Dateien und Verzeichnisse der Software (Liste): 3.Sysbench-Syntax sysbench --help Verwendung: sysbench [Optionen]... [Testname] [Befehl] Von den meisten Tests implementierte Befehle: Vorbereiten, Ausführen, Bereinigen, Hilfe Allgemeine Optionen: --threads=N Anzahl der zu verwendenden Threads [1] --events=N Grenze für die Gesamtzahl der Ereignisse [0] --time=N Grenze für die Gesamtausführungszeit in Sekunden [10] --forced-shutdown=STRING Anzahl der Sekunden, die nach dem --time-Limit gewartet werden soll, bevor das Herunterfahren erzwungen wird, oder „off“, um es zu deaktivieren [off] --thread-stack-size=SIZE Größe des Stapels pro Thread [64K] --rate=N durchschnittliche Transaktionsrate. 0 für unbegrenzte Rate [0] --report-interval=N Berichten Sie regelmäßig Zwischenstatistiken mit einem angegebenen Intervall in Sekunden. 0 deaktiviert Zwischenberichte [0] --report-checkpoints=[LIST,...] Vollständige Statistiken ausgeben und alle Zähler zu angegebenen Zeitpunkten zurücksetzen. Das Argument ist eine Liste von durch Kommas getrennten Werten, die die Zeit in Sekunden darstellen, die seit dem Start des Tests vergangen ist, wenn Berichtsprüfpunkte ausgeführt werden müssen. Berichtsprüfpunkte sind standardmäßig deaktiviert. [] --debug[=on|off] Weitere Debuginformationen ausgeben [off] --validate[=on|off] Validierungsprüfungen durchführen, wo möglich [off] --help[=on|off] Hilfe ausgeben und beenden [off] --version[=on|off] Version drucken und beenden [off] --config-file=DATEINAME Datei mit Befehlszeilenoptionen --tx-rate=N veralteter Alias für --rate [0] --max-requests=N veralteter Alias für --events [0] --max-time=N veralteter Alias für --time [0] --num-threads=N veralteter Alias für --threads [1] Optionen für den Pseudozufallszahlengenerator: --rand-type=STRING Zufallszahlenverteilung {uniform,gaussian,special,pareto} [special] --rand-spec-iter=N Anzahl der Iterationen, die zur Generierung der Zahlen verwendet werden [12] --rand-spec-pct=N Prozentsatz der Werte, die als 'speziell' behandelt werden sollen (für spezielle Verteilung) [1] --rand-spec-res=N Prozentsatz der zu verwendenden 'speziellen' Werte (für spezielle Verteilung) [75] --rand-seed=N Seed für Zufallszahlengenerator. Wenn 0, wird die aktuelle Zeit als RNG-Seed verwendet. [0] --rand-pareto-h=N Parameter h für Pareto-Verteilung [0,2] Protokolloptionen: --verbosity=N Ausführlichkeitsstufe {5 - debug, 0 - nur kritische Meldungen} [3] --percentile=N Perzentil, das in Latenzstatistiken berechnet werden soll (1-100). Verwenden Sie den Sonderwert 0, um die Perzentilberechnung zu deaktivieren [95] --histogram[=on|off] Latenz-Histogramm im Bericht drucken [off] Allgemeine Datenbankoptionen: --db-driver=STRING gibt den zu verwendenden Datenbanktreiber an (mit „help“ erhalten Sie eine Liste der verfügbaren Treiber) [mysql] --db-ps-mode=STRING Verwendungsmodus für vorbereitete Anweisungen {auto, disable} [auto] --db-debug[=on|off] druckt datenbankspezifische Debug-Informationen [off] Einkompilierte Datenbanktreiber: MySQL-Treiber pgsql - PostgreSQL-Treiber MySQL-Optionen: --mysql-host=[LIST,...] MySQL-Server-Host [localhost] --mysql-port=[LIST,...] MySQL-Server-Port [3306] --mysql-socket=[LISTE,...] MySQL-Socket --mysql-user=STRING MySQL-Benutzer [sbtest] --mysql-password=STRING MySQL-Passwort [] --mysql-db=STRING MySQL-Datenbankname [sbtest] --mysql-ssl[=on|off] SSL-Verbindungen verwenden, falls in der Client-Bibliothek verfügbar [off] --mysql-ssl-cipher=STRING verwendet einen bestimmten Chiffretyp für SSL-Verbindungen [] --mysql-compression[=on|off] Komprimierung verwenden, falls in der Client-Bibliothek verfügbar [off] --mysql-debug[=on|off] alle Client-Bibliotheksaufrufe verfolgen [aus] --mysql-ignore-errors=[LIST,...] Liste der zu ignorierenden Fehler oder „alle“ [1213,1020,1205] --mysql-dry-run[=on|off] Trockenlauf, so tun, als ob alle MySQL-Client-API-Aufrufe erfolgreich wären, ohne sie auszuführen [off] pgsql-Optionen: --pgsql-host=STRING PostgreSQL-Serverhost [localhost] --pgsql-port=N PostgreSQL-Server-Port [5432] --pgsql-user=STRING PostgreSQL-Benutzer [sbtest] --pgsql-password=STRING PostgreSQL-Passwort [] --pgsql-db=STRING PostgreSQL-Datenbankname [sbtest] Einkompilierte Tests: fileio - Datei-E/A-Test cpu - CPU-Leistungstest Speicher - Geschwindigkeitstest der Speicherfunktionen Threads - Leistungstest des Thread-Subsystems mutex - Mutex-Leistungstest Die grundlegende Syntax lautet wie folgt:
Befehl ist der von Sysbench auszuführende Befehl, einschließlich Vorbereiten, Ausführen und Bereinigen. Beim Vorbereiten geht es darum, Daten im Voraus für Tests vorzubereiten, beim Ausführen geht es darum, formale Tests durchzuführen und beim Bereinigen geht es darum, die Datenbank nach Abschluss des Tests zu bereinigen. testname gibt den durchzuführenden Test an. In der alten Version von sysbench konnten Sie den Parameter --test verwenden, um das Testskript anzugeben. In der neuen Version wurde der Parameter --test als veraltet erklärt. Sie können das Skript direkt angeben, anstatt --test zu verwenden. Das im Test verwendete Skript ist ein Lua-Skript. Sie können das mit Sysbench mitgelieferte Skript verwenden oder ein eigenes entwickeln. Zu den MySQL-Optionen gehören hauptsächlich MySQL-Verbindungsinformationsparameter und MySQL-Ausführungsparameter. 4 Testen Schritt 1: Stresstestdaten vorbereiten sysbench /usr/share/sysbench/oltp_insert.lua --mysql-host=XXX.XXX.XXX.XXX --mysql-port=3306 --mysql-user=testsbuser --mysql-password='textpwd' --mysql-db=tssysbench --db-driver=mysql --tables=15 --table-size=500000 --report-interval=10 --threads=128 --time=120 vorbereiten Schritt 2: Stresstest sysbench /usr/share/sysbench/oltp_insert.lua --mysql-host=XXX.XXX.XXX.XXX --mysql-port=3306 --mysql-user=testsbuser --mysql-password='textpwd' --mysql-db=tssysbench --db-driver=mysql --tables=15 --table-size=500000 --report-interval=10 --threads=128 --time=120 ausführen Die Testergebnisse können zur späteren Analyse auch in eine Datei exportiert werden. sysbench /usr/share/sysbench/oltp_insert.lua --mysql-host=XXX.XXX.XXX.XXX --mysql-port=3306 --mysql-user=testsbuser --mysql-password='testpwd' --mysql-db=tssysbench --db-driver=mysql --tables=15 --table-size=500000 --report-interval=10 --threads=128 --time=120 ausführen >> ./mysysbench.log Schritt 3: Stresstestdaten bereinigen sysbench /usr/share/sysbench/oltp_insert.lua --mysql-host=XXX.XXX.XXX.XXX --mysql-port=3306 --mysql-user=testsbuser --mysql-password='testpwd' --mysql-db=tssysbench --db-driver=mysql --tables=15 --table-size=500000 --report-interval=10 --threads=128 --time=120 Bereinigung 5. Hinweise (1) Die Testdatenbank muss im Voraus erstellt werden und das Testkonto muss über die Berechtigung zum Erstellen der Datenbank verfügen. Der Parameter --mysql-db gibt die Testdaten an, der Standardwert ist sbtest. Wenn es nicht im Voraus erstellt wird, lautet die Fehlermeldung wie folgt:
oder (ohne Angabe einer Datenbank)
(2) Führen Sie keine Tests auf dem Computer durch, auf dem der MySQL-Server ausgeführt wird. Einerseits werden die Auswirkungen des Netzwerks (sogar des LAN) möglicherweise nicht berücksichtigt. Andererseits wirkt sich der Betrieb von Sysbench (insbesondere wenn die Parallelität auf einen hohen Wert eingestellt ist) auf die Leistung des MySQL-Servers aus. (3) Erhöhen Sie schrittweise die Anzahl der gleichzeitigen Clientverbindungen (Parameter --thread) und beobachten Sie die Leistung des MySQL-Servers bei unterschiedlichen Verbindungszahlen. (4) Wenn mehrere Tests hintereinander durchgeführt werden, stellen Sie sicher, dass die Daten der vorherigen Tests bereinigt wurden. (5) Wenn es sich bei dem generierten Bericht um eine grafische Analyse handelt, kann er mit dem Tool Gnuplot analysiert werden. Zusammenfassen Oben ist die Methode, die ich Ihnen vorgestellt habe, um Leistungstests der MySQL-Datenbank mit dem Sysbench-Tool durchzuführen. Ich hoffe, sie wird Ihnen hilfreich sein. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht und ich werde Ihnen rechtzeitig antworten. Ich möchte auch allen für ihre Unterstützung der Website 123WORDPRESS.COM danken! Das könnte Sie auch interessieren:
|
<<: Zusammenfassung von 4 Lösungen zum Zurückgeben von Werten auf WeChat Mini-Programmseiten
>>: Detaillierte Erläuterung der Verwendung und Vorsichtsmaßnahmen von Crontab unter Linux
Einfache Funktion: Klicken Sie auf das Plug-In-Sy...
1. Erstellen Sie zuerst die Datei (wechseln Sie p...
Heute habe ich bei der Arbeit an PHP herausgefund...
Upgrade der Linux-Version: 1. Stellen Sie zunächs...
Inhaltsverzeichnis Vorwort 1. Grundlegende Umgebu...
Lassen Sie uns zunächst einige wichtige Punkte zu...
Ich habe viele Projekte geschrieben, bei denen de...
Inhaltsverzeichnis 1. MySQL 8.0.18 installieren 2...
Wir werden phpMyAdmin installieren, damit es mit ...
Laut canisue (http://caniuse.com/#search=border-r...
Inhaltsverzeichnis Verwendete Pygame-Funktionen E...
Inhaltsverzeichnis 1. Einleitung 2. Gedankenanaly...
Inhaltsverzeichnis Einführung in Anaconda 1. Heru...
1. Einführung in KVM Die Abkürzung für Kernel-bas...
Die Vorteile dieser Lösung liegen in der Einfachh...