1. Einleitung pt-query-digest ist ein Tool zum Analysieren langsamer MySQL-Abfragen. Es kann Binlog-, allgemeine Log-, Slowlog- oder MySQL-Protokolldaten analysieren, die von SHOWPROCESSLIST oder tcpdump erfasst wurden. Die Analyseergebnisse können in eine Datei ausgegeben werden. Der Analyseprozess besteht darin, zunächst die Bedingungen der Abfrageanweisung zu parametrisieren, dann die parametrisierten Abfragen zu gruppieren und zu zählen und die Ausführungszeit, Häufigkeit, Anteil usw. jeder Abfrage zu berechnen. Die Analyseergebnisse können verwendet werden, um Probleme zu identifizieren und zu optimieren. 2. Installieren Sie pt-query-digest 1. Download-Seite: https://www.percona.com/doc/percona-toolkit/2.2/installation.html 2. Perl-Module yum install -y perl-CPAN perl-Time-HiRes 3. Installationsschritte Methode 1: RPM-Installation cd /usr/local/src wget percona.com/get/percona-toolkit.rpm yum install -y percona-toolkit.rpm Das Installationsverzeichnis des Tools lautet: /usr/bin Methode 2: Quellcode-Installation cd /usr/local/src wget percona.com/get/percona-toolkit.tar.gz tar zxf percona-toolkit.tar.gz CD Percona-Toolkit-2.2.19 perl Makefile.PL PREFIX=/usr/local/percona-toolkit machen && machen installieren Das Installationsverzeichnis des Tools ist: /usr/local/percona-toolkit/bin 4. Einführung in die Verwendung jedes Tools (Details: https://www.percona.com/doc/percona-toolkit/2.2/index.html) (1) Analyse und Statistik des langsamen Abfrageprotokolls pt-query-digest /usr/local/mysql/data/slow.log (2) Serverübersicht pt-Zusammenfassung (3) Server-Festplattenüberwachung pt-diskstats (4)Zusammenfassung des MySQL-Dienststatus pt-mysql-summary -- --user=root --password=root pt-query-digest-Syntax und wichtige Optionen
4. Analysieren Sie die Ausgabeergebnisse von pt-query-digest Teil I: Statistische Gesamtergebnisse Gesamt: Wie viele Anfragen gibt es insgesamt Zeitbereich: Der Zeitbereich für die Abfrageausführung unique: die Anzahl eindeutiger Abfragen, also die Gesamtzahl unterschiedlicher Abfragen nach Parametrisierung der Abfragebedingungen total: Gesamt min: Minimum max: Maximum avg: Durchschnitt 95 %: Ordnen Sie alle Werte von klein nach groß an. Die Zahl bei 95 % ist im Allgemeinen als Referenz am wertvollsten. Median: Median, ordnen Sie alle Werte von klein nach groß an, die Position liegt in der Mitte # Das Tool führt eine Protokollanalyse der Benutzerzeit, Systemzeit, physischen Speichernutzung und virtuellen Speichernutzung durch. # 340 ms Benutzerzeit, 140 ms Systemzeit, 23,99 M RSS, 203,11 M VSZ # Tool-Ausführungszeit# Aktuelles Datum: Fr., 25. Nov. 2016, 02:37:18 # Hostname, auf dem das Analysetool ausgeführt wird# Hostname: localhost.localdomain # Dateien: slow.log # Insgesamt: 2 insgesamt, 2 einzigartig, 0,01 QPS, 0,01-fache Parallelität ________________ # Zeitraum für die Protokollierung # Zeitraum: 22.11.2016 06:06:18 bis 06:11:40 # Attribut Gesamt Min Max Durchschnitt 95% Standardabweichung Median # ============ ======= ======= ======= ======= ======= ======= ======= # Anweisungsausführungszeit# Ausführungszeit 3s 640ms 2s 1s 2s 999ms 1s # Sperrzeit # Sperrzeit 1ms 0 1ms 723us 1ms 1ms 723us # Anzahl der an den Client gesendeten Zeilen # Gesendete Zeilen 5 1 4 2,50 4 2,12 2,50 # Select-Anweisung durchsucht Zeilen # Zeilen untersuchen 186,17k 0 186,17k 93,09k 186,17k 131,64k 93,09k # Anzahl der Zeichen in der Abfrage# Abfragegröße 455 15 440 227,50 440 300,52 227,50 Teil 2: Ergebnisse der Abfragegruppenstatistik Rang: Die Rangfolge aller Anweisungen, standardmäßig nach Abfragezeit in absteigender Reihenfolge sortiert, angegeben durch --order-by Abfrage-ID: Anweisungs-ID (überschüssige Leerzeichen und Textzeichen entfernen und den Hash-Wert berechnen) Antwort: Gesamtantwortzeit Zeit: Der Gesamtzeitanteil dieser Abfrage in dieser Analyse Aufrufe: die Anzahl der Ausführungen, d. h. wie viele Abfrageanweisungen dieses Typs gibt es in dieser Analyse R/Call: durchschnittliche Antwortzeit pro Ausführung V/M: Verhältnis der Antwortzeitvariabilität zum Mittelwert Artikel: Abfrageobjekt # Profil # Rang Abfrage-ID Antwortzeit Anrufe R/Anruf V/M Artikel # ==== ===================== ============= ====== ====== ================= # 1 0xF9A57DD5A41825CA 2,0529 76,2 % 1 2,0529 0,00 AUSWÄHLEN # 2 0x4194D8F83F4F9365 0,6401 23,8 % 1 0,6401 0,00 AUSWÄHLEN wx_member_base Teil 3: Detaillierte Statistiken für jede Abfrage Aus den detaillierten statistischen Ergebnissen der Abfrage weiter unten werden in der oberen Tabelle die Statistiken jedes Elements aufgelistet, wie z. B. Ausführungsnummer, Maximum, Minimum, Durchschnitt, 95 % usw. ID: Die Abfrage-ID-Nummer, die der Abfrage-ID in der obigen Abbildung entspricht Datenbanken: Datenbankname Benutzer: Die Anzahl der Ausführungen jedes Benutzers (in Prozent) Query_time distribution: Abfragezeitverteilung. Die Länge spiegelt das Intervallverhältnis wider. In diesem Beispiel ist die Anzahl der Abfragen zwischen 1s und 10s doppelt so hoch wie die der Abfragen über 10s. Tabellen: An der Abfrage beteiligte Tabellen Erläuterung: SQL-Anweisung # Abfrage 1: 0 QPS, 0x Parallelität, ID 0xF9A57DD5A41825CA bei Byte 802 ______ # Dieses Element ist im Bericht enthalten, da es --limit entspricht. # Punkte: V/M = 0,00 # Zeitbereich: Alle Ereignisse traten am 22.11.2016 um 06:11:40 Uhr auf # Attribut Prozent Gesamt Min Max Durchschnitt 95% Standardabweichung Median # ============ === ========= ========= ======== ======= ======= ======= ======= ======== ======= # Anzahl 50 1 # Ausführungszeit 76 2s 2s 2s 2s 2s 0 2s # Sperrzeit 0 0 0 0 0 0 0 0 # Gesendete Zeilen 20 1 1 1 1 1 0 1 # Zeilen untersuchen 0 0 0 0 0 0 0 0 # Abfragegröße 3 15 15 15 15 15 0 15 # Zeichenfolge: # Datenbanktest # Hosts 192.168.8.1 # Benutzer mysql # Query_time-Verteilung # 1uns # 10us # 100us # 1ms # 10ms # 100ms # 1s ################################################################ # 10er+ # ERKLÄREN /*!50100 PARTITIONEN*/ wähle sleep(2)\G 5. Anwendungsbeispiele 1. Analysieren Sie die langsame Abfragedatei direkt: pt-query-digest slow.log > slow_report.log 2. Analysieren Sie die Abfragen der letzten 12 Stunden: pt-query-digest --since=12h slow.log > slow_report2.log 3. Analysieren Sie Abfragen innerhalb eines bestimmten Zeitraums: pt-query-digest slow.log – seit „07.01.2017 09:30:00“ – bis „07.01.2017 10:00:00“ >> slow_report3.log 4. Die Analyse bezieht sich auf langsame Abfragen mit Select-Anweisungen pt-query-digest --filter '$event->{fingerprint} =~ m/^select/i' slow.log> slow_report4.log 5. Langsame Abfrage für einen bestimmten Benutzer pt-query-digest --filter '($event->{user} || "") =~ m/^root/i' slow.log> slow_report5.log 6. Alle langsamen Abfragen mit vollständigem Tabellenscan oder vollständigem Join abfragen pt-query-digest --filter '(($event->{Full_scan} || "") gleich "ja") ||(($event->{Full_join} || "") gleich "ja")' slow.log> slow_report6.log 7. Speichern Sie die Abfrage in der Tabelle query_review pt-query-digest --user=root –password=abc123 --review h=localhost,D=test,t=query_review --create-review-table slow.log 8. Speichern Sie die Abfrage in der Tabelle query_history pt-query-digest --user=root –password=abc123 --review h=localhost,D=test,t=query_history --create-review-table slow.log_0001 pt-query-digest --user=root –password=abc123 --review h=localhost,D=test,t=query_history --create-review-table slow.log_0002 9. Erfassen Sie die TCP-Protokolldaten von MySQL über tcpdump und analysieren Sie sie anschließend tcpdump -s 65535 -x -nn -q -tttt -i beliebig -c 1000 Port 3306 > mysql.tcp.txt pt-query-digest --type tcpdump mysql.tcp.txt> slow_report9.log 10. Binlog analysieren mysqlbinlog mysql-bin.000093 > mysql-bin000093.sql pt-query-digest --type=binlog mysql-bin000093.sql > slow_report10.log 11. Allgemeines Protokoll analysieren pt-query-digest --type=genlog localhost.log > slow_report11.log Zusammenfassen Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, dass der Inhalt dieses Artikels Ihnen bei Ihrem Studium oder Ihrer Arbeit helfen kann. Wenn Sie Fragen haben, können Sie eine Nachricht hinterlassen. Vielen Dank für Ihre Unterstützung von 123WORDPRESS.COM. Das könnte Sie auch interessieren:
|
<<: Detaillierte Erklärung zur Verwendung der Element-el-button-Button-Komponente
>>: 4 Scan-Tools für den Linux-Desktop
Wie unten dargestellt: 1. ssh -v -p [Portnummer] ...
Dieser Artikel beschreibt die MySQL-Indexabdeckun...
Mithilfe der Vue-Sprache und Elementkomponenten m...
Inhaltsverzeichnis Trennwirkung Erläuterung der B...
Installationseinführung unter Windows: Schauen Si...
Ich werde nicht näher auf die Theorie von UDP ein...
Die Installation von Harbor ist ziemlich einfach,...
Inhaltsverzeichnis 1. Referenz-Plugins im Uniapp ...
Vorwort Zuvor habe ich über das Problem der verti...
In diesem Artikel untersuchen wir, warum async/aw...
In diesem Artikel wird der spezifische JavaScript...
Inhaltsverzeichnis Zusammenfassung der Distribute...
Inhaltsverzeichnis Eine Falle bei fileReader Fall...
Vorwort Kürzlich trat in der Testumgebung ein Pro...
1. Installieren Sie Docker. Referenz-URL: Docker-...