Heim >Datenbank >MySQL-Tutorial >Beispielanalyse von Nutzungsdatensätzen des Tools pt-query-digest in MySQL

Beispielanalyse von Nutzungsdatensätzen des Tools pt-query-digest in MySQL

藏色散人
藏色散人nach vorne
2022-11-30 17:07:011636Durchsuche

Dieser Artikel vermittelt Ihnen relevantes Wissen über MySQL. Er stellt hauptsächlich das Tool pt-query-digest für die Analyse langsamer MySQL-Abfrageprotokolle vor. Ich hoffe, es wird für alle hilfreich sein.

1. Einführung

pt-query-digest ist ein Tool zur Analyse langsamer MySQL-Abfrageprotokolle. Es kann auch Protokolldaten in tcpdump aus „SHOW PROCESSLIST“ und MySQL-Abfragen analysieren. Wir können das Analyseprotokoll in eine bestimmte Datei ausgeben und durch Analyse der Protokolldatei entsprechende Optimierungen und andere Vorgänge durchführen.

2. Herunterladen und installieren

  • Je nach unterschiedlicher Systeminstallation ist mein System Centos, also wählen Sie direkt die Centos-Installation aus Paket zum Kompilieren Installation
    > wget https://downloads.percona.com/downloads/percona-toolkit/3.4.0/binary/redhat/7/x86_64/percona-toolkit-3.4.0-3.el7.x86_64.rpm
    > yum install percona-toolkit-3.4.0-3.el7.x86_64.rpm
  • 3. Installation abgeschlossen

4. Analysieren Sie das langsame Abfrageprotokoll von msql

  • Beispielanalyse von Nutzungsdatensätzen des Tools pt-query-digest in MySQLpt-query-digest Parameter Sie können den Befehl perldoc zum Anzeigen verwenden ee
Analysieren Sie die gesamte langsame Protokolldatei
> wget https://downloads.percona.com/downloads/percona-toolkit/3.4.0/source/debian/percona-toolkit-3.4.0.tar.gz
> tar -zxvf percona-toolkit-3.4.0.tar.gz
> cd percona-toolkit-3.4.0
> perl Makefile.PL PREFIX=/usr/local/percona-toolkit
> make && make install

analysiert die Protokolle der angegebenen Zeit seit~until

perldoc /usr/bin/pt-query-digest

–seit: gibt die Startzeit an
  • –bis: gibt die Endzeit an
  • analysiert das langsame Protokoll und speichert die Analyseergebnisse zur MySQL-Datentabelle
    pt-query-digest mysql-slow.log > slow_report.log
    • –Benutzer: Datenbank-Benutzername
    • –Passwort: Datenbank-Passwort
    h: Datenbank-Host
  • D: Datenbankname
    • t: Generierter Tabellenname
    • 5. Ergebnisanalyse
    • Teil 1: Eine allgemeine Analyseübersicht

Gesamt: Wie viele Abfragen gibt es insgesamt? , wie viele verschiedene Abfragen es nach der Parametrisierung der Abfragebedingungen insgesamt gibt

total: Gesamtdauer aller Abfragen

  • min: Mindestdauer aller Abfragen

  • max: Maximale Dauer aller Abfragen

  • avg: Durchschnittliche Dauer aller Abfragen

  • 95 %: Kombinieren Sie alle Dauerwerte. Von klein nach groß geordnet, liegt die Dauerzahl bei 95 %, diese Zahl ist im Allgemeinen die wertvollste als Referenz.

  • Median: Median, alle Dauerwerte sind von klein nach groß angeordnet, die Dauerzahl liegt in der Mitte

  • pt-query-digest mysql-slow.log --since '2022-10-01 00:00:00' --until '2022-11-05 00:00:00'  > slow_report_date_20221021-202221105.log

  • Teil 2: Analyse
  • Rang: Rangfolge aller Anweisungen, standardmäßig in absteigender Reihenfolge der Abfragezeit, angegeben durch –order-by
  • –order-by Query_time:sum: In absteigender Reihenfolge der gesamten Abfragezeit
  • Einführung in Sortierparameter:
  • sum Summe/Gesamtattributwert (Standardwert)

    min Minimaler Attributwert (Minimalwert)

    max Maximaler Attributwert (Minimalwert)
  • cnt Häufigkeit/Anzahl der Abfrage (nach Anzahl der SQL-Vorkommen)

Abfrage-ID: ID der Anweisung (zusätzliche Leerzeichen und Textzeichen entfernen, Hash-Wert berechnen)
  • Antwort: Gesamtantwortzeit


    • Zeit: Der Gesamtzeitanteil dieser Abfrage in dieser Analyse


    • Aufrufe: Die Anzahl der Ausführungen, also die Gesamtzahl der Abfrageanweisungen dieses Typs in dieser Analyse
  • R/Call: Die durchschnittliche Antwortzeit jeder Ausführung

  • V/M: Antwortzeit-Varianz-zu- Das Verhältnis des Mittelwerts

  • Item: Abfrageobjekt

  • pt-query-digest --user=root --password=123456 --history 
    h=192.168.33.10,D=local_test_db,t=query_review --create-history-table  mysql-slow.log  --since 
    '2022-11-01 00:00:00' --until '2022-11-05 00:00:00'

    Teil 3: Spezifisch SQL-Statistiken und -Analyse

  • pct: Der Prozentsatz eines Ausführungsattributs der SQL-Anweisung zu einem Ausführungsattribut aller langsamen Abfrageanweisungen

  • total: Alle Attributzeiten eines Ausführungsattributs der SQL-Anweisung.

  • Anzahl: Die Häufigkeit, mit der die SQL-Anweisung ausgeführt wird. Der entsprechende pct gibt an, wie oft diese SQL-Anweisung ausgeführt wird, als Prozentsatz der Anzahl der Ausführungen aller langsamen Abfrageanweisungen (69 % in der Abbildung unten), und die entsprechende Summe gibt insgesamt 30988 Ausführungen an. ?? Daten, Nichtzieldaten.

Query_time distribution: Abfragezeitverteilung

  • SQL-Anweisung: Wählen Sie in der Abbildung unten Sleep(7)G

  • # A software update is available:
    
    # 23.7s user time, 15.8s system time, 35.67M rss, 249.01M vsz
    说明:
    执行过程中,在用户中所花费的所有时间
    执行过程中,在内核空间中所花费的所有时间
    pt-query-digest 进程所分配的内存大小
    pt-query-digest 进程所分配的虚拟内存大小
    
    # Current date: Mon Nov  7 09:01:23 2022
    说明:当前时间
    # Hostname: localhost.localdomain
    说明:执行pt-query-digest的主机名
    # Files: mysql-slow.log
    说明:被分析的文件名称
    # Overall: 44.78k total, 54 unique, 0.01 QPS, 0.07x concurrency __________
    说明:
    total: 语句总数量
    unique: 唯一语句数量
    QPS: 每秒查询量
    concurrency: 查询的并发
    
    # Time range: 2022-10-01 00:00:03 to 2022-11-04 16:05:24
    说明:执行过程中日志记录的时间范围
    # Attribute          total     min     max     avg     95%  stddev  median
    说明:属性            总计      最小值   最大值  平均值   95%  标准差   中位数
    95%: 把所有时长值从小到大排列,位置位于 95% 的那个时长数,这个数一般最具有参考价值
    median: 中位数,把所有时长值从小到大排列,位置位于中间那个时长数
    
    # ============     ======= ======= ======= ======= ======= ======= =======
    # Exec time        204553s      3s   1540s      5s     10s      8s      3s
    说明:执行时间
    # Lock time             8s       0   107ms   186us    80us     2ms    36us
    说明:锁占用时间
    # Rows sent        238.87M       0   2.88M   5.46k   11.95  68.22k    0.99
    说明:发送到客户端的行数
    # Rows examine      73.56G       0   5.01M   1.68M   3.86M 724.49k   1.32M
    说明:扫描的语句行数
    # Query size         8.18M      30   4.36k  191.46  511.45  224.63   72.65
    说明:查询的字符数

    Six View Offset
  • Sie können den Offset in der langsamen Abfrage verwenden log Um die spezifische SQL-Anweisung in der Datei zu finden, lautet die Suchmethode wie folgt:
  • # Profile
    说明:分析
    # Rank Query ID                            Response time    Calls R/Call  
    # ==== =================================== ================ ===== ======= 
    #    1 0xC000AA97F210B2AEAE4933AF9B00296A  104236.2061 5... 30988  3.3638  0.03 SELECT xxx
    #    2 0x974C6E6D54DB8B0DF505CA7BDC508686  32167.9607 15.7%  3418  9.4113  1.34 SELECT xxx 
    #    3 0x6BE180C5804B585F25BB16550447DC6C  18453.0185  9.0%  2499  7.3842  0.92 SELECT xxx
    #    4 0xADF16E3E9EB5D6B08245E39FF1428C9F  17873.4338  8.7%  3114  5.7397  0.84 SELECT xxx 
    #    5 0x2964CD629A24595719659BDAEBCF0E6F  10648.5404  5.2%  1437  7.4103  0.93 SELECT xxx
    #    6 0x50566E6DCF8FA562B88AE41AB1E32DC6   7424.3855  3.6%   303 24.5029 15.41 SELECT xxx
    #    7 0xDB0A3D60F85C2212C476B144E1678AB8   5327.8370  2.6%  1627  3.2746  0.05 SELECT xxx
    #    8 0x04BB0B332CEED517298AB06DE2A30AD6   3190.6822  1.6%   657  4.8564  1.36 SELECT xxx    
    #   10 0xDAB0AF524151C621DC0E9B92AC002C38    526.6288  0.3%   140  3.7616  0.01 SELECT xxx 
    # MISC 0xMISC                               1807.1067  0.9%    57 31.7036   0.0 <27 ITEMS>

Das obige ist der detaillierte Inhalt vonBeispielanalyse von Nutzungsdatensätzen des Tools pt-query-digest in MySQL. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:learnku.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen