Heim >System-Tutorial >LINUX >Detaillierte Erläuterung der MySQL-Leistungsindikatoren und Berechnungsmethoden
Die überwiegende Mehrheit der MySQL-Leistungsmetriken kann auf zwei Arten ermittelt werden:
MySQL-Leistungsindikatoren, die mit dem erweiterten Statusbefehl mysqladmin ermittelt werden, sind standardmäßig auf kumulative Werte eingestellt. Wenn Sie den aktuellen Status wissen möchten, müssen Sie die Differenz berechnen; mit dem Parameter --relative(-r) können Sie die Differenz jedes Indikators sehen, und mit dem Parameter --sleep(-i), Sie können die Aktualisierungsfrequenz festlegen.
Kann verschiedene Statuswerte des laufenden MySQL-Servers auflisten, kumulativer Wert.
Mysqladmin-Befehl „Extended-Status“ und „Globalen Status anzeigen“ erhalten viele Indikatorelemente. Konzentrieren Sie sich bei praktischen Anwendungen auf die folgenden Leistungsindikatoren:
tps: Transaktionen pro Sekunde, Anzahl der Transaktionen pro Sekunde;
qps: Abfragen pro Sekunde;Es gibt normalerweise zwei Möglichkeiten, tps/qps zu berechnen:
Methode 1: Berechnen Sie tps basierend auf com_commit und com_rollback und berechnen Sie qps basierend auf Fragen.
TPS = Com_commit/s + Com_rollback/s
Unter ihnen
Com_commit /s= mysqladmin erweiterter Status --relative --sleep=1|grep -w Com_commit
Com_rollback/s = mysqladmin erweiterter Status --relative --sleep=1|grep -w Com_rollback
QPS bezieht sich auf die Gesamtmenge der von MySQL Server pro Sekunde ausgeführten Abfragen, die ungefähr durch die Änderung des Statuswerts „Fragen“ (Anzahl der Kundenanfragen) pro Sekunde dargestellt wird. Es gibt also:
QPS = mysqladmin Extended-Status --relative --sleep=1|grep -w Fragen
Mit der oben genannten Methode können Sie auch die Anzahl der MySQL-Auswahlen, -Einfügungen, -Updates, -Löschungen pro Sekunde usw. ermitteln, z. B.:
Com_select/s = mysqladmin Extended-Status --relative --sleep=1|grep -w Com_select
Com_select/s: Durchschnittliche Anzahl der Ausführungen von Select-Anweisungen pro Sekunde
Com_insert/s: durchschnittliche Anzahl der Ausführungen von Insert-Anweisungen pro Sekunde
Com_update/s: Durchschnittliche Anzahl der Ausführungen von Update-Anweisungen pro Sekunde
Com_delete/s: durchschnittliche Anzahl der Ausführungen von Löschanweisungen pro Sekunde
Methode 2: Berechnen Sie TPS und QPS basierend auf com_%
tps= Com_insert/s + Com_update/s + Com_delete/s
qps=Com_select/s + Com_insert/s + Com_update/s + Com_delete/s
threads_connected: Die Anzahl der aktuell verbundenen Threads
Bytes_sent/s: Durchschnittliche Anzahl der pro Sekunde an alle Clients gesendeten Bytes, Einheit KB
innodb_data_writes: Die durchschnittliche Häufigkeit, mit der innodb pro Sekunde aus der Datei schreibt
innodb_data_fsyncs: Die durchschnittliche Anzahl der von innodb pro Sekunde ausgeführten fsync()-Vorgänge
innodb_data_read: Die durchschnittliche Datenmenge, die von innodb pro Sekunde gelesen wird, in KB
innodb_data_geschrieben: Die durchschnittliche Datenmenge, die von innodb pro Sekunde geschrieben wird, in KB
innodb_buffer_pool_reads: Durchschnittliche Anzahl der Seiten, die pro Sekunde von der physischen Festplatte gelesen werden
innodb_buffer_pool_read_requests: Durchschnittliche Anzahl von Lesevorgängen aus dem innodb-Pufferpool pro Sekunde (Anzahl logischer Leseanforderungen)
innodb_buffer_pool_write_requests: Durchschnittliche Anzahl der Schreibvorgänge in den Innodb-Pufferpool pro Sekunde
innodb_buffer_pool_pages_dirty: durchschnittliche Anzahl schmutziger Seiten im Innodb-Cache-Pool pro Sekunde
innodb_buffer_pool_pages_flushed: Die durchschnittliche Anzahl der Flush-Seitenanforderungen im Innodb-Cache-Pool pro Sekunde
Trefferquote des Innodb-Pufferpools lesen
innodb_buffer_read_hit_ratio = ( 1 - Innodb_buffer_pool_reads/Innodb_buffer_pool_read_requests) * 100
Nutzung des Innodb-Pufferpools
Innodb_buffer_usage = ( 1 - Innodb_buffer_pool_pages_free / Innodb_buffer_pool_pages_total) * 100
innodb_os_log_fsyncs: Durchschnittliche Anzahl von fsync()-Schreibvorgängen in die Protokolldatei pro Sekunde
innodb_os_log_scribed: Durchschnittliche Anzahl der Bytes, die pro Sekunde in die Protokolldatei geschrieben werden
innodb_log_writes: Durchschnittliche Anzahl physischer Schreibvorgänge in die Protokolldatei pro Sekunde
innodb_log_write_requests: durchschnittliche Anzahl von Log-Schreibanfragen pro Sekunde
innodb_rows_deleted: Die durchschnittliche Anzahl der pro Sekunde aus der Innodb-Tabelle gelöschten Zeilen
innodb_rows_inserted: Die durchschnittliche Anzahl der pro Sekunde aus der Innodb-Tabelle eingefügten Zeilen
innodb_rows_read: Die durchschnittliche Anzahl der Zeilen, die pro Sekunde aus der Innodb-Tabelle gelesen werden
innodb_rows_updated: Die durchschnittliche Anzahl der pro Sekunde aus der Innodb-Tabelle aktualisierten Zeilen
innodb_row_lock_waits: Die Häufigkeit, mit der eine Zeile auf die Sperrung warten muss
innodb_row_lock_time: Gesamtzeit, die für die Zeilensperrung aufgewendet wurde, in Millisekunden
innodb_row_lock_time_avg: durchschnittliche Zeilensperrzeit, in Millisekunden
key_read_requests: MyISAMs durchschnittliche Anzahl von Lesevorgängen aus dem Pufferpool pro Sekunde
Key_write_requests: Die durchschnittliche Anzahl von MyISAM-Schreibvorgängen aus dem Pufferpool pro Sekunde
key_reads: Die durchschnittliche Häufigkeit, mit der MyISAM pro Sekunde von der Festplatte liest
key_writes: Die durchschnittliche Häufigkeit, mit der MyISAM pro Sekunde von der Festplatte schreibt
MyISAM durchschnittliche Schlüsselpufferauslastung pro Sekunde
Key_usage_ratio =Key_blocks_used/(Key_blocks_used+Key_blocks_unused)*100
MyISAM durchschnittliche Schlüsselpuffer-Lesetrefferrate pro Sekunde
Key_read_hit_ratio=(1-Key_reads/Key_read_requests)*100
MyISAM durchschnittliche Schlüsselpuffer-Schreibtrefferrate pro Sekunde
Key_write_hit_ratio =(1-Key_writes/Key_write_requests)*100
Created_tmp_disk_tables: Die Anzahl der temporären Tabellen, die automatisch auf der Festplatte erstellt werden, wenn der Server eine Anweisung ausführt
Created_tmp_tables: Die Anzahl der temporären Tabellen im Speicher, die automatisch erstellt werden, wenn der Server eine Anweisung ausführt
Das Verhältnis von Created_tmp_disk_tables/Created_tmp_tables sollte 10 % am besten nicht überschreiten. Wenn der Wert von Created_tmp_tables relativ groß ist, kann es sein, dass zu viele Sortiersätze vorhanden sind oder die Verbindungssätze nicht ausreichend optimiert sind
slow_queries: Die Anzahl der Abfragen, deren Ausführungszeit long_query_time Sekunden überschreitet (wichtig)
sort_rows: Anzahl der sortierten Zeilen
open_files: Anzahl der geöffneten Dateien
open_tables: Anzahl der aktuell offenen Tische
select_scan: Anzahl der Joins für einen vollständigen Scan der ersten Tabelle
Darüber hinaus gibt es einige Leistungsindikatoren, die nicht direkt über den erweiterten Status von mysqladmin abgerufen werden können oder den globalen Status anzeigen, aber sehr wichtig sind.
Percona stellt das Tool tcprstat zur Messung der Antwortzeit zur Verfügung. Diese Funktion ist standardmäßig deaktiviert. Sie können diese Funktion aktivieren, indem Sie den Parameter query_response_time_stats=1 setzen.
Es gibt zwei Möglichkeiten, die Reaktionszeit zu überprüfen:
(1) Antwortzeitstatistiken mit dem Befehl SHOW QUERY_RESPONSE_TIME anzeigen;
(2) Durchsuchen Sie die Tabelle QUERY_RESPONSE_TIME in INFORMATION_SCHEMA.http://www.orczhou.com/index.php/2011/09/thanks-percona-response-time-distribution/comment-page-1/ (Referenzartikel)
Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der MySQL-Leistungsindikatoren und Berechnungsmethoden. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!