Innotop – Ein CLI-basiertes Top-ähnliches Monitor-Tool für MySQL
Innotop ist ein hervorragendes Befehlszeilenprogramm, ähnlich dem Befehl top, zur Überwachung lokaler und entfernter MySQL-Server, die unter der InnoDB-Engine ausgeführt werden.
Innotop verfügt über viele Funktionen und verschiedene Arten von Modi/Optionen, die dabei helfen, verschiedene Aspekte der MySQL-Leistung zu überwachen und Datenbankadministratoren auch bei der Identifizierung von Problemen mit dem MySQL-Server zu unterstützen.
Innotop hilft beispielsweise bei der Überwachung des MySQL-Replikationsstatus, der Benutzerstatistiken, Abfragelisten, InnoDB-Puffer, InnoDB-E/A-Informationen, offenen Tabellen, Sperrtabellen usw. Es aktualisiert seine Daten regelmäßig, sodass Sie dies tun können siehe aktualisierte Ergebnisse.
Innotop verfügt über großartige Funktionen und Flexibilität und erfordert keine zusätzliche Konfiguration. Es kann durch einfaches Ausführen des Befehls „innotop“ vom Terminal aus ausgeführt werden.
Installieren Sie das Innotop-Tool (MySQL Monitoring) unter Linux
Innotop ist im Paketmanager Ihrer Distribution verfügbar. Sie können es wie gezeigt mit Ihrem Paketmanager installieren.
sudo apt install innotop [On Debian, Ubuntu and Mint]
sudo yum install innotop [On RHEL/CentOS/Fedora and Rocky/AlmaLinux]
Wenn innotop nicht im Paket-Repository Ihrer Distribution verfügbar ist, können Sie das Git-Repository klonen und wie gezeigt installieren.
git clone https://github.com/innotop/innotop.git
cd innotop
Als nächstes müssen Sie einige Perl-Abhängigkeiten mit CPAN oder cpanminus installieren. Wenn Sie cpanminus nicht installiert haben, können Sie es mit Ihrem Paketmanager installieren:
sudo apt install cpanminus [On Debian, Ubuntu and Mint]
sudo dnf install cpanminus [On RHEL/CentOS/Fedora and Rocky/AlmaLinux]
Installieren Sie abschließend die erforderlichen Perl-Module mit cpanminus wie gezeigt.
cpanm Term::ReadKey DBI DBD::mysql
Nach der Installation der Abhängigkeiten können Sie Innotop mit dem folgenden Befehl ausführen:
perl innotop
Zuerst müssen Sie cpanminus installieren, einen leichten und benutzerfreundlichen Client für CPAN, ein Repository von Perl-Modulen und -Software, das die Installation von Perl-Modulen und ihren Abhängigkeiten vereinfacht.
sudo ap install cpanminus # For Debian/Ubuntu
sudo yum install cpanminus # For CentOS/RHEL
Als nächstes installieren Sie die folgenden Perl-Modulabhängigkeiten.
cpanm Term::ReadKey DBI DBD::mysql
Installieren Sie dann Innotop:
sudo cpanm innotop
Um innotop zu starten, geben Sie einfach „innotop“ ein und geben Sie die Optionen -u (Benutzername) und - an. Geben Sie in der Befehlszeile jeweils p (Passwort) ein und drücken Sie die Eingabetaste.
# innotop -u root -p 'tecm1nt'
Sobald Sie eine Verbindung zum MySQL-Server hergestellt haben, sollten Sie etwas Ähnliches wie den folgenden Bildschirm sehen.
[RO] Dashboard (? for help) localhost, 61d, 254.70 QPS, 5/2/200 con/run/cac thds, 5.1.61-log
Uptime MaxSQL ReplLag Cxns Lock QPS QPS Run Run Tbls Repl SQL
61d 4 0 254.70 _ _ 462 Off 1
Innotop-Hilfe
Drücken Sie „?“, um eine Zusammenfassung der Befehlszeilenoptionen und deren Verwendung zu erhalten.
Switch to a different mode:
A Dashboard I InnoDB I/O Info Q Query List
B InnoDB Buffers K InnoDB Lock Waits R InnoDB Row Ops
C Command Summary L Locks S Variables & Status
D InnoDB Deadlocks M Replication Status T InnoDB Txns
F InnoDB FK Err O Open Tables U User Statistics
Actions:
d Change refresh interval p Pause innotop
k Kill a query's connection q Quit innotop
n Switch to the next connection x Kill a query
Other:
TAB Switch to the next server group / Quickly filter what you see
! Show license and warranty = Toggle aggregation
# Select/create server groups @ Select/create server connections
$ Edit configuration settings \ Clear quick-filters
Press any key to continue
Dieser Abschnitt enthält Screenshots der Verwendung von innotop. Verwenden Sie die Großbuchstabentasten, um zwischen den Modi zu wechseln.
Benutzerstatistiken
In diesem Modus werden Benutzerstatistiken und Indexstatistiken nach Lesevorgängen sortiert angezeigt.
CXN When Load QPS Slow QCacheHit KCacheHit BpsIn BpsOut
localhost Total 0.00 1.07k 697 0.00% 98.17% 476.83k 242.83k
Abfrageliste
Dieser Modus zeigt die Ausgabe von SHOW FULL PROCESSLIST an, ähnlich dem Abfragelistenmodus von mytop. Diese Funktion zeigt keine InnoDB-Informationen an und ist für den allgemeinen Gebrauch am nützlichsten.
When Load Cxns QPS Slow Se/In/Up/De% QCacheHit KCacheHit BpsIn BpsOut
Now 0.05 1 0.20 0 0/200/450/100 0.00% 100.00% 882.54 803.24
Total 0.00 151 0.00 0 31/231470/813290/188205 0.00% 99.97% 1.40k 0.22
Cmd ID State User Host DB Time Query
Connect 25 Has read all relay system u 05:26:04
InnoDB-E/A-Info
In diesem Modus werden InnoDBs E/A-Statistiken, ausstehende E/A, E/A-Threads und Datei-E/A angezeigt > und Protokollstatistik-Tabellen standardmäßig.
____________________ I/O Threads ____________________
Thread Purpose Thread Status
0 insert buffer thread waiting for i/o request
1 log thread waiting for i/o request
2 read thread waiting for i/o request
3 write thread waiting for i/o request
____________________________ Pending I/O _____________________________
Async Rds Async Wrt IBuf Async Rds Sync I/Os Log Flushes Log I/Os
0 0 0 0 0 0
________________________ File I/O Misc _________________________
OS Reads OS Writes OS fsyncs Reads/Sec Writes/Sec Bytes/Sec
26 3 3 0.00 0.00 0
_____________________ Log Statistics _____________________
Sequence No. Flushed To Last Checkpoint IO Done IO/Sec
0 5543709 0 5543709 0 5543709 8 0.00
InnoDB-Puffer
In diesem Abschnitt sehen Sie Informationen zum InnoDB-Pufferpool, zur Seitenstatistik, zum Einfügepuffer und zum adaptiven Hash-Index >. Die Daten werden von SHOW INNODB STATUS abgerufen.
__________________________ Buffer Pool __________________________
Size Free Bufs Pages Dirty Pages Hit Rate Memory Add'l Pool
512 492 20 0 -- 16.51M 841.38k
____________________ Page Statistics _____________________
Reads Writes Created Reads/Sec Writes/Sec Creates/Sec
20 0 0 0.00 0.00 0.00
______________________ Insert Buffers ______________________
Inserts Merged Recs Merges Size Free List Len Seg. Size
0 0 0 1 0 2
__________________ Adaptive Hash Index ___________________
Size Cells Used Node Heap Bufs Hash/Sec Non-Hash/Sec
33.87k 0 0.00 0.00
InnoDB Row Ops
Hier sehen Sie die Ausgabe der Tabellen InnoDB row operation, row operation misc, semaphores und wait array standardmäßig.
________________ InnoDB Row Operations _________________
Ins Upd Read Del Ins/Sec Upd/Sec Read/Sec Del/Sec
0 0 0 0 0.00 0.00 0.00 0.00
________________________ Row Operation Misc _________________________
Queries Queued Queries Inside Rd Views Main Thread State
0 0 1 waiting for server activity
_____________________________ InnoDB Semaphores _____________________________
Waits Spins Rounds RW Waits RW Spins Sh Waits Sh Spins Signals ResCnt
2 0 41 1 1 2 4 5 5
____________________________ InnoDB Wait Array _____________________________
Thread Time File Line Type Readers Lck Var Waiters Waiting? Ending?
Befehlszusammenfassung
Im Befehlszusammenfassungsmodus wird die gesamte cmd_summary-Tabelle angezeigt, die der folgenden ähnelt.
_____________________ Command Summary _____________________
Name Value Pct Last Incr Pct
Com_update 11980303 65.95% 2 33.33%
Com_insert 3409849 18.77% 1 16.67%
Com_delete 2772489 15.26% 0 0.00%
Com_select 507 0.00% 0 0.00%
Com_admin_commands 411 0.00% 1 16.67%
Com_show_table_status 392 0.00% 0 0.00%
Com_show_status 339 0.00% 2 33.33%
Com_show_engine_status 164 0.00% 0 0.00%
Com_set_option 162 0.00% 0 0.00%
Com_show_tables 92 0.00% 0 0.00%
Com_show_variables 84 0.00% 0 0.00%
Com_show_slave_status 72 0.00% 0 0.00%
Com_show_master_status 47 0.00% 0 0.00%
Com_show_processlist 43 0.00% 0 0.00%
Com_change_db 27 0.00% 0 0.00%
Com_show_databases 26 0.00% 0 0.00%
Com_show_charsets 24 0.00% 0 0.00%
Com_show_collations 24 0.00% 0 0.00%
Com_alter_table 12 0.00% 0 0.00%
Com_show_fields 12 0.00% 0 0.00%
Com_show_grants 10 0.00% 0 0.00%
Variablen und Status
In diesem Abschnitt werden Statistiken wie Abfragen pro Sekunde berechnet und in verschiedenen Modi angezeigt.
QPS Commit_PS Rlbck_Cmt Write_Commit R_W_Ratio Opens_PS Tbl_Cch_Usd Threads_PS Thrd_Cch_Usd CXN_Used_Ever CXN_Used_Now
0 0 0 18163174 0 0 0 0 0 1.99 1.32
0 0 0 18163180 0 0 0 0 0 1.99 1.32
0 0 0 18163188 0 0 0 0 0 1.99 1.32
0 0 0 18163192 0 0 0 0 0 1.99 1.32
0 0 0 18163217 0 0 0 0 0 1.99 1.32
0 0 0 18163265 0 0 0 0 0 1.99 1.32
0 0 0 18163300 0 0 0 0 0 1.99 1.32
0 0 0 18163309 0 0 0 0 0 1.99 1.32
0 0 0 18163321 0 0 0 0 0 1.99 1.32
0 0 0 18163331 0 0 0 0 0 1.99 1.32
Replikationsstatus
In diesem Modus sehen Sie die Ausgabe von Slave-SQL-Status, Slave-I/O-Status und Master-Status. Die ersten beiden Abschnitte zeigen den Slave-Status und den Slave-E/A-Thread-Status und der letzte Abschnitt zeigt den Master-Status.
_______________________ Slave SQL Status _______________________
Master On? TimeLag Catchup Temp Relay Pos Last Error
172.16.25.125 Yes 00:00 0.00 0 41295853
____________________________________ Slave I/O Status _____________________________________
Master On? File Relay Size Pos State
172.16.25.125 Yes mysql-bin.000025 39.38M 41295708 Waiting for master to send event
____________ Master Status _____________
File Position Binlog Cache
mysql-bin.000010 10887846 0.00%
Nicht interaktiv
Sie können „innotop“ nicht interaktiv ausführen.
# innotop --count 5 -d 1 -n
uptime max_query_time time_behind_master connections locked_count qps spark_qps run spark_run open slave_running longest_sql
61d 2 0 0.000363908088893752 64 Yes
61d 2 0 4.96871146980749 _ _ 64 Yes
61d 2 0 3.9633543857494 ^_ __ 64 Yes
61d 2 0 3.96701862656428 ^__ ___ 64 Yes
61d 2 0 3.96574802684297 ^___ ____ 64 Yes
Überwachen Sie die Remote-Datenbank
Um eine Remote-Datenbank auf einem Remote-System zu überwachen, verwenden Sie den folgenden Befehl mit einem bestimmten Benutzernamen, Passwort und Hostnamen.
# innotop -u username -p password -h hostname
Weitere Informationen zur Verwendung und den Optionen von „innotop“ finden Sie in den Manpages, indem Sie auf einem Terminal auf „man innotop“ klicken.
Referenzlinks
Innotop-Homepage
Lesen Sie auch:
- Mtop (MySQL-Datenbanküberwachung) in RHEL/CentOS/Fedora