Innotop - Un outil de surveillance de type haut de gamme basé sur CLI pour MySQL
Innotop est un excellent programme en ligne de commande, similaire à la commande top, pour surveiller les serveurs MySQL locaux et distants exécutés sous le moteur InnoDB.
Innotop est livré avec de nombreuses fonctionnalités et différents types de modes/options, qui aident à surveiller divers aspects des performances de MySQL et aident également les administrateurs de bases de données à identifier les problèmes avec le serveur MySQL.
Par exemple, Innotop aide à surveiller l'état de réplication MySQL, les statistiques des utilisateurs, les listes de requêtes, les tampons InnoDB, les informations d'E/S InnoDB, les tables ouvertes, les tables verrouillées, etc. Il actualise régulièrement ses données, vous permettant de voir les résultats mis à jour.
Innotop est doté de fonctionnalités et d'une flexibilité exceptionnelles et ne nécessite aucune configuration supplémentaire. Il peut être exécuté en exécutant simplement la commande « innotop » depuis le terminal.
Installer l'outil Innotop (MySQL Monitoring) sous Linux
Innotop est disponible dans le gestionnaire de packages de votre distribution, vous pouvez l'installer à l'aide de votre gestionnaire de packages comme indiqué.
sudo apt install innotop [On Debian, Ubuntu and Mint]
sudo yum install innotop [On RHEL/CentOS/Fedora and Rocky/AlmaLinux]
Si innotop n'est pas disponible dans le référentiel de packages de votre distribution, vous pouvez cloner le référentiel Git et l'installer comme indiqué.
git clone https://github.com/innotop/innotop.git
cd innotop
Ensuite, vous devez installer certaines dépendances Perl utilisant CPAN ou cpanminus. Si cpanminus n'est pas installé, vous pouvez l'installer à l'aide de votre gestionnaire de packages :
sudo apt install cpanminus [On Debian, Ubuntu and Mint]
sudo dnf install cpanminus [On RHEL/CentOS/Fedora and Rocky/AlmaLinux]
Enfin, installez les modules Perl requis en utilisant cpanminus comme indiqué.
cpanm Term::ReadKey DBI DBD::mysql
Après avoir installé les dépendances, vous pouvez exécuter Innotop à l'aide de la commande suivante :
perl innotop
Tout d'abord, vous devez installer cpanminus, un client léger et convivial pour CPAN, qui est un référentiel de modules et de logiciels Perl qui a simplifié l'installation des modules Perl et de leurs dépendances.
sudo ap install cpanminus # For Debian/Ubuntu
sudo yum install cpanminus # For CentOS/RHEL
Ensuite, installez les dépendances du module Perl suivantes.
cpanm Term::ReadKey DBI DBD::mysql
Ensuite, installez Innotop :
sudo cpanm innotop
Pour démarrer innotop, tapez simplement « innotop » et spécifiez les options -u (nom d'utilisateur) et - p (mot de passe) respectivement, à partir de la ligne de commande et appuyez sur Entrée.
# innotop -u root -p 'tecm1nt'
Une fois connecté au serveur MySQL, vous devriez voir quelque chose de similaire à l'écran suivant.
[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
Aide Innotop
Appuyez sur « ? » pour obtenir le résumé des options de ligne de commande et de leur utilisation.
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
Cette section contient des captures d'écran de l'utilisation d'innotop. Utilisez les touches majuscules pour basculer entre les modes.
Statistiques des utilisateurs
Ce mode affiche les statistiques utilisateur et les statistiques d'index triées par lectures.
CXN When Load QPS Slow QCacheHit KCacheHit BpsIn BpsOut
localhost Total 0.00 1.07k 697 0.00% 98.17% 476.83k 242.83k
Liste de requêtes
Ce mode affiche la sortie de SHOW FULL PROCESSLIST, similaire au mode liste de requêtes de mytop. Cette fonctionnalité n'affiche pas les informations InnoDB et est particulièrement utile pour un usage général.
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
Informations sur les E/S InnoDB
Ce mode affiche les statistiques d'E/S d'InnoDB, les E/S en attente, les threads d'E/S, les E/S de fichier et les tableaux de statistiques de journalisation par défaut.
____________________ 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
Tampons InnoDB
Cette section, vous verrez des informations sur le pool de tampons InnoDB, les statistiques de page, le tampon d'insertion et l'index de hachage adaptatif . . Les données sont extraites de SHOW INNODB STATUS.
__________________________ 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
Opérations de ligne InnoDB
Ici, vous verrez le résultat des opérations sur les lignes InnoDB, des opérations diverses sur les lignes, des sémaphores et des tables de tableaux d'attente. par défaut.
________________ 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?
Résumé des commandes
Le mode résumé des commandes affiche tout le tableau cmd_summary, qui ressemble à celui ci-dessous.
_____________________ 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%
Variables et statut
Cette section calcule des statistiques, telles que les requêtes par seconde, et les affiche dans plusieurs modes différents.
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
État de la réplication
Dans ce mode, vous verrez la sortie de Statut SQL de l'esclave, Statut des E/S de l'esclave et Statut du maître. Les deux premières sections montrent l'état de l'esclave et l'état du thread d'E/S esclave et la dernière section affiche l'état du maître.
_______________________ 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%
De manière non interactive
Vous pouvez exécuter « innotop » de manière non interactive.
# 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
Surveiller la base de données distante
Pour surveiller une base de données distante sur un système distant, utilisez la commande suivante en utilisant un nom d'utilisateur, un mot de passe et un nom d'hôte particuliers.
# innotop -u username -p password -h hostname
Pour plus d'informations sur l'utilisation et les options de « innotop », consultez les pages de manuel en cliquant sur « man innotop » sur un terminal.
Liens de référence
Page d'accueil d'Innotop
Lire aussi :
- Mtop (surveillance de base de données MySQL) dans RHEL/CentOS/Fedora