Website-Suche

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:

  1. Mtop (MySQL-Datenbanküberwachung) in RHEL/CentOS/Fedora

Verwandte Artikel: