Vorwort:
Benchmark: Grundlegende Fähigkeiten, ein Stresstest für das Systemdesign, ist das einzig praktische, effektive und erlernbare System in einem bestimmten Job. Er kann das beobachten Verhalten des Systems unter verschiedenen Belastungen, bewerten Sie die Kapazität des Systems, verstehen Sie, welche wichtigen Änderungen es gibt, oder beobachten Sie, wie das System verschiedene Daten verarbeitet, und können Sie virtuelle Szenarien außerhalb der tatsächlichen Belastung des Systems erstellen (Beherrschung des Systemverhaltens).
Text:
Wie im Vorwort erwähnt, sind Benchmark-Tests sehr wichtig! Was kann getan werden: Im Allgemeinen: Hardware testen, Hardware schätzen, System überprüfen, Druck messen, Konfiguration anpassen
1. Annahmen basierend auf dem System überprüfen und bestätigen, ob die Annahmen mit der tatsächlichen Situation übereinstimmen 2. Reproduzieren Sie einige abnormale Verhaltensweisen im System, um sie zu beheben. 3. Testen Sie den aktuellen Betrieb des Systems und verwenden Sie historische Ergebnisse, um unvorhersehbare Probleme zu analysieren und zu diagnostizieren. 4. Simulieren Sie höhere Lasten, um die Skalierbarkeitsengpässe herauszufinden, auf die das System bei steigendem Druck stoßen kann 5. Planen Sie zukünftiges Geschäftswachstum, Hardware, Netzwerkkapazität und zugehörige Ressourcen. 6. Testen Sie die Anpassungsfähigkeit der Anwendung an variable Umgebungen. 7. Testen Sie verschiedene Hardware-, Software- und Betriebssystemkonfigurationen korrekt;
Die Rolle des Datenbank-Benchmarkings besteht darin, die Leistung der Datenbank unter der aktuellen Konfiguration (einschließlich Hardwarekonfiguration, Betriebssystem, Datenbankeinstellungen usw.) zu analysieren und so den Leistungsschwellenwert von MySQL herauszufinden und anzupassen entsprechend den tatsächlichen Systemanforderungen. [Quelle]
Anders als echter Druck: Real ist komplex und veränderlich; Benchmark-Tests erfordern eine möglichst schnelle, einfache und direkte Durchführung, leicht vergleichbare Ergebnisse, geringe Kosten und eine einfache Implementierung
Für das gesamte System: integrierter Full-Stack
MySQL einzeln testen: Einzelkomponente
Empfohlener Gesamttest: Richtige Einstellungen
1. Benutzer konzentrieren sich auf die Gesamtleistung. 2. MySQL stellt nicht immer einen Engpass dar. 3. Es kann die tatsächliche Leistung der Anwendung besser erkennen.
Empfohlene separate Tests: Daten erforderlich
1. Vergleich erforderlich verschiedene Schemata oder Abfrageleistung; 2. Testen auf ein bestimmtes Problem; 3. Vermeiden Sie langwierige, kurzfristige, schnelle Zyklen
Ziel: Verfeinern Sie es in eine Reihe von Fragen , Detaillierte Analyse spezifischer Probleme
Anzahl der Transaktionen pro Zeiteinheit, TPC-C, interaktive Mehrbenutzeranwendungen, Anzahl der Transaktionen pro Sekunde, Anzahl der Transaktionen pro Minute
Die für die Testaufgabe erforderliche Gesamtzeit, durchschnittliche Klingelzeit, minimale Klingelzeit, Maximum und Prozentsatz mit Hilfe des Diagramms
Testen Sie die Leistung der Anwendung bei unterschiedlicher Parallelität, achten Sie auf die gleichzeitigen Vorgänge, die Anzahl der gleichzeitig arbeitenden Threads und Verbindungen
Webserver-Parallelität! = Datenbank, nur Datenverarbeitungsfunktionen des Tabellensitzungsspeichers; Testen Sie jederzeit die Parallelität
Skalierbarkeit: Verdoppelung der Systemarbeit, rationale Situation Teile können gleichzeitig bezogen werden; die Ressourcen des Systems werden verdoppelt oder der Durchsatz wird verdoppelt.
Der Geschäftsdruck des Systems kann sich ändern: Dieser Indikator ist für Kapazitätsspezifikationen nützlich: Bereitstellung von Informationen für Discover Anwendungsengpässe
Erfassen Sie so viele Testanforderungen wie möglich und entwerfen Sie Tests basierend auf den Anforderungen. Vermeiden Sie es, sich nur auf einige Indikatoren zu konzentrieren und andere Indikatoren zu ignorieren
Seien Sie so nah dran möglichst auf die reale Anwendung umstellen Situation:
Verwenden Sie den vollständigen Satz, Datenverteilungsmerkmale, reale Verteilungsparameter, ob mehrere Benutzer vorhanden sind, Benutzerverhalten anpassen, mehrere Typen, Fehlerprotokolle überprüfen, Systemaufwärmphase: Wie Es dauert lange, bis die normale Leistungsfähigkeit nach dem Neustart erreicht ist. Hält eine gewisse Zeit an.
Werfen Sie Fragen auf und klären Sie Ziele
Standard-Benchmark-Test: Geeignete Lösung TPC-H OLTP
Spezielle Tests: Komplexe, iterative, einfach wiederherzustellende Schnappschüsse von Produktionsdatensätzen
Planen: Dokumentation der Parameter, Ergebnisse und Testprotokoll im Detail
Der Benchmark-Test sollte ausreichend lange laufen . Wenn die Zeit nicht bestätigt werden kann, kann es kontinuierlich beobachtet werden, bis bestätigt wird, dass das System stabil ist.
Eine einfache Testregel: Die Zeit, bis das System stabil aussieht, beträgt mindestens Zeit zum Aufwärmen des Systems
So viele Informationen wie möglich über das zu testende System sammeln
Am besten ein Verzeichnis erstellen, Erstellen Sie für jede Testrunde ein separates Unterverzeichnis und speichern Sie darin die Ergebnisse, Konfigurationsdateien, Testindikatoren, Skripte und andere zugehörige Anweisungen.
Die Daten, die aufgezeichnet werden müssen:
Systemstatus , Leistungsindikatoren: CPU-Auslastung, Festplatten-E/A, Netzwerkverkehrsstatistiken, SHOWGLOBAL STATUS-Zähler
Angemessene Intervalle, Startzeit der Aufzeichnung, Zeitstempel der Auslastung, einfach sammeln
Beantworten Sie einige Fragen:
Haben Sie den richtigen Benchmark ausgewählt? Wurden für die Frage Daten erhoben? Ist die Aufwärmzeit lang genug?
Wird der falsche Teststandard verwendet: E/A-intensive Referenzen verwenden CPU-intensive Teststandards, um die Leistung zu bewerten?
Sind die Testergebnisse wiederholbar? Stellen Sie sicher, dass der Systemstatus konsistent ist, bevor Sie den symptomatischen Test wiederholen.
Einflussfaktoren:
Externer Druck, Leistungsanalyse, Überwachungssystem, detaillierte Protokolle, periodische Vorgänge
Hinweis:
Die im Prozess erforderlichen Ressourcen werden speziell zum Testen verwendet. Ändern Sie die Parameter während des Tests so wenig wie möglich und ändern Sie die Parameter des Benchmark-Tests schrittweise, indem Sie die abnormalen Situationen im Prozess sorgfältig untersuchen die Gründe
Automatisierung: Makefiles und Skripte reduzieren
Die Testergebnisse entsprechen einfach den aktuellen Anforderungen Tests und sehen Sie sich die Ergebnisse an. , kann mehrmals oder länger ausgeführt werden
Ergebnis:
Analyse, Zahlen umwandeln In Wissen umgewandelt, besteht das ultimative Ziel darin, Probleme während des Entwurfs zu beantworten
Wie aussagekräftige Ergebnisse abstrahiert werden können, hängt davon ab, wie man Daten sammelt, Skripte zur Datenanalyse schreibt, menschliche Fehler reduziert, Arbeitsaufwand, Wiederholbarkeit und Dokumentation
Ein Bild sagt mehr als tausend Worte. Ursprünglich gab es einige Wissenspunkte, für die das Baby eine Karte zeichnen wollte, aber es gab keine Zeichnungen
im Buch: SHOW FULL PROCESSLIST zeigt an, welche Threads ausgeführt werden. Sie können diese Informationen auch mit der mysqladmin-Prozessliste abrufen . Andernfalls werden Sie nur in einem eigenen Thread angezeigt, ohne das Schlüsselwort FULL zu verwenden. [Quelle]
1. ab ist Apache HTTP, die maximale Anzahl von Anfragen, die es pro Sekunde verarbeiten kann [Referenz] [2]
2. http_load: ab ist ähnlich flexibler und dient zum Testen von Webservern und wird über eine Eingabedatei bereitgestellt. Mehrere URLs können zufällig zum Testen ausgewählt oder zum Testen entsprechend dem Zeitverhältnis angepasst werden [Referenz]
3. JMeter, ein Java-Programm , kann andere Anwendungen laden und deren Leistung testen. Ich bin mit den beiden oben genannten nicht in Kontakt gekommen, daher werde ich keinen Kommentar abgeben:
1. mysqlslap: kommt mit mysql5.1, simuliert die Auslastung des Servers und gibt Timing-Informationen aus. Sie können die Anzahl gleichzeitiger Verbindungen ausführen und SQL-Anweisungen angeben, andernfalls wird die Select-Anweisung automatisch generiert [Referenz ]
2. MySQL Benchmark Suite (SQL-Bench): im Lieferumfang enthalten, aus 5.7 entfernt, Benchmark-Suite, verwenden Vergleichstests auf verschiedenen Datenbankservern, serielle Single-Thread-Ausführung, Messung der Geschwindigkeit von Abfrageausführung; Enthält eine große Anzahl vordefinierter Tests, einfach zu verwenden, einfach zu vergleichende Leistungstests verschiedener Engines oder Konfigurationen, CPU-intensiv, die Ergebnisse zeigen, welche Arten von Vorgängen schneller auf dem Server ausgeführt werden. Der Testdatensatz ist klein und die angegebenen Daten können nicht verwendet werden. Perl-BDB-Unterstützung ist erforderlich.
3. Super Smack: MySQL, PostgreSQL bietet Stresstests und Lastausgleich , ein komplexes und leistungsstarkes Tool, das den Mehrbenutzerzugriff simulieren, Testdaten in die Datenbank laden und Testtabellen mit Zufallsdaten füllen kann [Referenz]
4. Datenbank-Testsuite: A Werkzeugsatz ähnlich einigen Industriestandardtests, Kostenloses TPC-C OLTP-Testtool
5. sysbench: Multithread-Systemstresstest , Bewertung der Systemleistung basierend auf Faktoren, die die Leistung des Datenbankservers beeinflussen, All-in-One-Testtool, unterstützt Hardwaretests von MySQL, Betriebssystem und Hardware [Referenz] [2]
MySQL BENCHMARK()-Funktion: Testet die Ausführungsgeschwindigkeit einer bestimmten Operation. Der Parameter kann die Anzahl der auszuführenden Operationen oder ein Ausdruck (jeder Skalarausdruck) sein.
Das n-Wort wird hier weggelassen
Schließlich wird empfohlen, sich zumindest mit Sysbench vertraut zu machen (Vergleich verschiedener Systemleistungen) und häufig Benchmark-Tests durchzuführen Es ist notwendig, einige Prinzipien zu formulieren und die geeigneten auszuwählen. Testtools, Skriptbibliotheken erstellen, Ergebnisse der Informationsanalyse sammeln und ein Zeichentool beherrschen.
Das haben die Chefs gesagt, wissen Sie also, was ich meine? Nächster Artikel ist?
Verwandte Artikel:
[MySQL-Datenbank] Kapitel 1 Interpretation: MySQL-Architektur und -Geschichte
[MySQL-Datenbank] Interpretation von Kapitel 3: Serverleistungsanalyse (Teil 2)
Das obige ist der detaillierte Inhalt von[MySQL-Datenbank] Interpretation von Kapitel 2: MySQL-Benchmark-Test. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!