AnglaisFrançaisEspagnol

Ad


Icône de favori OnWorks

innotop - En ligne dans le Cloud

Exécutez innotop dans le fournisseur d'hébergement gratuit OnWorks sur Ubuntu Online, Fedora Online, l'émulateur en ligne Windows ou l'émulateur en ligne MAC OS

Il s'agit de la commande innotop qui peut être exécutée dans le fournisseur d'hébergement gratuit OnWorks en utilisant l'un de nos multiples postes de travail en ligne gratuits tels que Ubuntu Online, Fedora Online, l'émulateur en ligne Windows ou l'émulateur en ligne MAC OS

PROGRAMME:

Nom


innotop - Moniteur de transaction/statut MySQL et InnoDB.

SYNOPSIS


Pour surveiller les serveurs normalement :

innotop

Pour surveiller les informations d'état d'InnoDB à partir d'un fichier :

innotop /var/log/mysql/mysqld.err

Pour exécuter innotop de manière non interactive dans une configuration pipe-and-filter :

innotop --compte 5 -d 1 -n

Pour surveiller une base de données sur un autre système à l'aide d'un nom d'utilisateur et d'un mot de passe particuliers :

innotop -u -p -h

DESCRIPTION


innotop surveille les serveurs MySQL. Chacun de ses modes vous montre un aspect différent de ce qui est
se passe sur le serveur. Par exemple, il existe un mode pour surveiller la réplication, un pour
requêtes et une pour les transactions. innotop actualise ses données périodiquement, vous voyez donc un
mise à jour de la vue.

innotop a beaucoup de fonctionnalités pour les utilisateurs expérimentés, mais vous pouvez le démarrer et l'exécuter virtuellement
aucune configuration. Si vous ne faites que commencer, consultez « DÉMARRAGE RAPIDE ». Presse '?' à n'importe
temps lors de l'exécution d'innotop pour obtenir de l'aide contextuelle.

DÉMARRAGE RAPIDE


Pour démarrer innotop, ouvrez un terminal ou une invite de commande. Si vous avez installé innotop sur
votre système, vous devriez pouvoir simplement taper "innotop" et appuyer sur Entrée ; sinon, vous
devra passer au répertoire d'innotop et taper "perl innotop".

Sans options spécifiées, innotop tentera de se connecter à un serveur MySQL sur localhost
en utilisant mysql_read_default_group=client pour les autres paramètres de connexion. Si tu as besoin de
spécifiez un nom d'utilisateur et un mot de passe différents, utilisez respectivement les options -u et -p. À
surveiller une base de données MySQL sur un autre hôte, utilisez l'option -h.

Une fois que vous vous êtes connecté, innotop devrait vous montrer quelque chose comme ce qui suit :

[RO] Liste de requêtes (? pour l'aide) localhost, 01:11:19, 449.44 QPS, 14/7/163 con/run

CXN lors du chargement QPS lent QCacheHit KCacheHit BpsIn BpsOut
localhost Total 0.00 1.07k 697 0.00% 98.17% 476.83k 242.83k

CXN Cmd ID Utilisateur Hôte DB Requête d'heure
localhost Requête 766446598 test 10.0.0.1 foo 00:02 INSERT INTO table (

(Cet exemple est tronqué à droite afin qu'il tienne sur un terminal lors de l'exécution de 'man
innotop')

Si votre serveur est occupé, vous verrez plus de sortie. Remarquez la première ligne à l'écran,
qui vous indique que readonly est défini sur true ([RO]), dans quel mode vous êtes et sur quel serveur
vous êtes connecté. Vous pouvez passer à d'autres modes avec des touches ; appuyez sur 'T' pour changer
à une liste de transactions InnoDB, par exemple.

Appuyez sur la '?' pour voir quelles touches sont actives dans le mode actuel. Vous pouvez appuyer sur l'un des
ces touches et innotop effectueront l'action demandée ou vous inviteront à entrer davantage.
Si votre système prend en charge Term::ReadLine, vous pouvez utiliser TAB et d'autres touches pour la saisie semi-automatique
et modifier l'entrée.

Pour quitter innotop, appuyez sur la touche 'q'.

OPTIONS


innotop est principalement configuré via son fichier de configuration, mais une partie de la configuration
les options peuvent provenir de la ligne de commande. Vous pouvez également spécifier un fichier à surveiller pour InnoDB
sortie d'état ; voir "SUIVI D'UN FICHIER" pour plus de détails.

Vous pouvez annuler certaines options en préfixant le nom de l'option avec --no. Par exemple, --noinc
(ou --no-inc) annule "--inc".

--Couleur
Activer ou désactiver la coloration du terminal. Correspond au paramètre du fichier de configuration "color".

--config
Spécifie un fichier de configuration à lire. Cette option est non collante, c'est-à-dire qu'elle
ne persiste pas dans le fichier de configuration lui-même.

--compter
Actualiser uniquement le nombre de fois spécifié (ticks) avant de quitter. Chaque rafraîchissement est un
pause pendant "intervalle" secondes, suivi de la demande de données des connexions MySQL et
l'imprimer sur le terminal.

--retard
Spécifie la durée de pause entre les ticks (actualisations). Correspond au
option de configuration "intervalle".

--Aidez-moi
Imprimez un résumé de l'utilisation de la ligne de commande et quittez.

--hôte
Hôte auquel se connecter.

--inc
Spécifie si innotop doit afficher des nombres absolus ou des nombres relatifs (décalages
de leurs valeurs précédentes). Correspond à l'option de configuration "status_inc".

--mode
Spécifie le mode dans lequel innotop doit démarrer. Correspond à la configuration
option "mode".

--nonint
Activer le fonctionnement non interactif. Voir "FONCTIONNEMENT NON INTERACTIF" pour plus d'informations.

--le mot de passe
Mot de passe à utiliser pour la connexion.

--Port
Port à utiliser pour la connexion.

--skipcentral
Ne lisez pas le fichier de configuration central.

--utilisateur
Utilisateur à utiliser pour la connexion.

--version
Affiche les informations de version et quitte.

--écrivez
Définit l'option de configuration "readonly" sur 0, ce qui oblige innotop à écrire le fichier en cours d'exécution
configuration à ~/.innotop/innotop.conf à la sortie, si aucun fichier de configuration n'a été chargé
au démarrage.

RACCOURCIS


innotop est interactif et vous le contrôlez en appuyant sur des touches.

· Les touches majuscules basculent entre les modes.

· Les touches minuscules initient une action dans le mode actuel.

· D'autres clés font quelque chose de spécial comme changer la configuration ou afficher la licence innotop.

Presse '?' à tout moment pour voir les clés actuellement actives et ce qu'elles font.

MODES


Chacun des modes d'innotop récupère et affiche un type particulier de données des serveurs
vous surveillez. Vous basculez entre les modes avec les touches majuscules. Ce qui suit est un
brève description de chaque mode, par ordre alphabétique. Pour passer en mode, appuyez sur la
touche répertoriée devant son titre dans la liste suivante :

B : tampons InnoDB
Ce mode affiche des informations sur le pool de mémoire tampon InnoDB, les statistiques de page, l'insertion
tampon et index de hachage adaptatif. Les données proviennent de SHOW INNODB STATUS.

Ce mode contient le "buffer_pool", "page_statistics", "insert_buffers", et
tables "adaptative_hash_index" par défaut.

C : Résumé des commandes
Ce mode est similaire au mode Résumé des commandes de mytop. Il montre le "cmd_summary"
tableau, qui ressemble à ce qui suit :

Résumé de la commande (? pour l'aide) localhost, 25+07:16:43, 2.45 QPS, 3 thd, 5.0.40
_____________________ Résumé des commandes _____________________
Nom Valeur Pct Last Incr Pct
Select_scan 3244858 69.89 % 2 100.00 %
Select_range 1354177 29.17% 0 0.00%
Select_full_join 39479 0.85% 0 0.00%
Select_full_range_join 4097 0.09% 0 0.00%
Select_range_check 0 0.00% 0 0.00%

Le tableau récapitulatif des commandes est construit en extrayant les variables de "STATUS_VARIABLES".
Les variables doivent être numériques et doivent correspondre au préfixe donné par le "cmd_filter"
variable de configuration. Les variables sont ensuite triées par valeur décroissante et
par rapport à la dernière variable, comme indiqué ci-dessus. Les colonnes de pourcentage sont des pourcentages
du total de toutes les variables du tableau, afin que vous puissiez voir le poids relatif du
variables.

L'exemple montre ce que vous voyez si le préfixe est "Select_". Le préfixe par défaut est
"Com_". Vous pouvez choisir un préfixe avec la touche 's'.

C'est un peu comme exécuter SHOW VARIABLES LIKE "prefix%" avec mémoire et nice
formatage.

Les valeurs sont agrégées sur tous les serveurs. Les colonnes Pct ne sont pas correctement
agrégés sur plusieurs serveurs. Il s'agit d'une limitation connue du regroupement
algorithme qui peut être corrigé à l'avenir.

D : blocages InnoDB
Ce mode affiche les transactions impliquées dans le dernier blocage InnoDB. Un deuxième tableau
affiche les verrous détenus et attendus par chaque transaction. Une impasse est causée par un cycle
dans le graphique d'attente, il devrait donc y avoir deux verrous maintenus et un attendu à moins que
les informations de blocage sont tronquées.

InnoDB place les informations de blocage avant d'autres informations dans SHOW INNODB
Sortie STATUT. S'il y a beaucoup de verrous, les informations sur les blocages peuvent devenir très
large et la taille de la sortie SHOW INNODB STATUS est limitée. Un grand
l'impasse peut remplir toute la sortie, voire être tronquée, et vous empêcher de voir
aucune autre information. Si vous exécutez innotop dans un autre mode, par exemple T
mode, et tout à coup vous ne voyez rien, vous voudrez peut-être vérifier et voir si un
l'impasse a effacé les données dont vous avez besoin.

Si c'est le cas, vous pouvez créer une petite impasse pour remplacer la grande. Utilisez la touche 'w'
pour « effacer » la grande impasse avec une petite. Cela ne fonctionnera que si vous avez
défini une table de blocage pour la connexion (voir "CONNEXIONS SERVEUR").

Vous pouvez également configurer innotop pour détecter automatiquement lorsqu'un gros blocage doit
être remplacé par un petit (voir "auto_wipe_dl").

Ce mode affiche par défaut les tables "deadlock_transactions" et "deadlock_locks".

F : Erreurs de clé étrangère InnoDB
Ce mode affiche les dernières informations d'erreur de clé étrangère InnoDB, telles que la table où
c'est arrivé, quand et qui et quelle requête l'a causé, et ainsi de suite.

InnoDB a une grande variété de messages d'erreur de clé étrangère, et beaucoup d'entre eux sont juste
difficile à analyser. innotop ne fait pas toujours le meilleur travail ici, mais il y a tellement de code
consacré à l'analyse de cette sortie désordonnée et inanalysable qu'innotop ne sera probablement jamais
parfait à cet égard. Si innotop ne vous montre pas ce que vous devez voir, regardez simplement
au texte d'état directement.

Ce mode affiche la table "fk_error" par défaut.

I : informations sur les E/S d'InnoDB
Ce mode affiche les statistiques d'E/S d'InnoDB, y compris les threads d'E/S, les E/S en attente, le fichier
E/S diverses et statistiques de journal. Il affiche les "io_threads", "pending_io",
Tables "file_io_misc" et "log_statistics" par défaut.

L : Serrures
Ce mode affiche des informations sur les verrous actuels. Pour le moment, seuls les verrous InnoDB sont
pris en charge, et par défaut, vous ne verrez que les verrous pour lesquels les transactions sont en attente.
Ces informations proviennent de la section TRANSACTIONS du texte d'état d'InnoDB. Si
vous avez un serveur très occupé, vous pouvez avoir des attentes de verrouillage fréquentes ; ça aide de pouvoir
voir quelles tables et index sont le "point chaud" pour les verrous. Si votre serveur fonctionne
très bien, ce mode ne devrait rien montrer.

Vous pouvez configurer MySQL et innotop pour surveiller non seulement les verrous pour lesquels une transaction
attend, mais ceux actuellement détenus aussi. Vous pouvez le faire avec le verrou InnoDB
Surveiller (http://dev.mysql.com/doc/en/innodb-monitor.html>). Ce n'est pas documenté dans
le manuel MySQL, mais en créant également le moniteur de verrouillage avec l'instruction suivante
affecte la sortie de SHOW INNODB STATUS, qu'innotop utilise :

CREATE TABLE innodb_lock_monitor(a int) ENGINE=INNODB ;

Cela oblige InnoDB à imprimer sa sortie dans le fichier MySQL toutes les 16 secondes environ, comme
indiqué dans le manuel, mais cela fait également que la sortie normale SHOW INNODB STATUS inclut
verrouiller les informations, qu'innotop peut analyser et afficher (ce sont les
fonctionnalité).

Cela signifie que vous pouvez faire ce qui peut sembler impossible : dans une mesure limitée (InnoDB
tronque certaines informations dans la sortie), vous pouvez voir quelle transaction détient le
verrouille quelque chose d'autre attend. Vous pouvez également activer et désactiver le verrouillage InnoDB
Surveillez avec les mappages de touches dans ce mode.

Ce mode affiche la table "innodb_locks" par défaut. Voici un exemple d'écran
lorsqu'une connexion attend des verrous, une autre connexion est maintenue :

_________________________________ Verrous InnoDB __________________________
Type d'ID CXN Attente Attente Mode actif Index de table de base de données
localhost 12 ENREGISTREMENT 1 00:10 00:10 X test t1 PRIMAIRE
localhost 12 TABLEAU 0 00:10 00:10 Test IX t1
localhost 12 ENREGISTREMENT 1 00:10 00:10 X test t1 PRIMAIRE
localhost 11 TABLEAU 0 00:00 00:25 Test IX t1
localhost 11 ENREGISTREMENT 0 00:00 00:25 X test t1 PRIMAIRE

Vous pouvez voir que la première connexion, ID 12, attend un verrou sur la clé PRIMAIRE sur
test.t1 et attend depuis 10 secondes. La deuxième connexion n'attend pas,
car la colonne Waiting est 0, mais elle détient des verrous sur le même index. Cela vous dit
la connexion 11 bloque la connexion 12.

M : État de la réplication maître/esclave
Ce mode affiche la sortie de SHOW SLAVE STATUS et SHOW MASTER STATUS en trois
les tables. Les deux premiers divisent le statut de l'esclave en statut de thread SQL et I/O, et
le dernier indique l'état du maître. Des filtres sont appliqués pour éliminer les serveurs non esclaves de
les tables esclaves et les serveurs non maîtres de la table maître.

Ce mode affiche le "slave_sql_status", "slave_io_status" et "master_status"
tableaux par défaut.

O : tables ouvertes
Cette section provient de la commande SHOW OPEN TABLES de MySQL. Par défaut, il est filtré
pour afficher les tables qui sont utilisées par une ou plusieurs requêtes, afin que vous puissiez jeter un rapide coup d'œil à
quelles tables sont « chaudes ». Vous pouvez l'utiliser pour deviner quelles tables pourraient être verrouillées
implicitement.

Ce mode affiche le mode "open_tables" par défaut.

Q : Liste de requêtes
Ce mode affiche la sortie de SHOW FULL PROCESSLIST, un peu comme mon topliste de requêtes de
mode. Ce mode fait ne sauraient afficher les informations relatives à InnoDB. C'est probablement l'un des
les modes les plus utiles pour un usage général.

Il y a un en-tête informatif qui affiche des informations générales sur l'état de votre
serveur. Vous pouvez l'activer et le désactiver avec la touche « h ». Par défaut, innotop masque
processus inactifs et son propre processus. Vous pouvez les activer et les désactiver avec le 'i'
et les touches 'a'.

Vous pouvez EXPLIQUER une requête à partir de ce mode avec la touche 'e'. Cela affiche la requête
texte intégral, les résultats d'EXPLAIN, et dans les nouvelles versions de MySQL, même le
requête résultant de EXPLAIN EXTENDED. innotop essaie également de réécrire certaines requêtes
pour les rendre EXPLIQUABLES. Par exemple, les instructions INSERT/SELECT sont réinscriptibles.

Ce mode affiche les tables "q_header" et "processlist" par défaut.

R : Opérations de ligne InnoDB et sémaphores
Ce mode affiche les opérations de ligne InnoDB, les opérations de ligne diverses, les sémaphores et
informations du tableau d'attente. Il affiche les "row_operations",
Tables "row_operation_misc", "semaphores" et "wait_array" par défaut.

S : Variables et état
Ce mode calcule les statistiques, telles que les requêtes par seconde, et les imprime dans
plusieurs styles différents. Vous pouvez afficher des valeurs absolues ou des valeurs incrémentielles entre
tiques.

Vous pouvez basculer entre les vues en appuyant sur une touche. La touche 's' imprime une seule ligne
chaque fois que l'écran se met à jour, dans le style de vmstat. La touche 'g' change la vue en
un graphique des mêmes nombres, un peu comme télécharger. La touche 'v' change la vue en un
tableau pivotant des noms de variables sur la gauche, avec des mises à jour successives défilant sur
l'écran de gauche à droite. Vous pouvez choisir le nombre de mises à jour à mettre sur l'écran
avec la variable de configuration "num_status_sets".

Les en-têtes peuvent être abrégés pour tenir sur l'écran en mode interactif. Tu choisis
quelles variables afficher avec la touche 'c', qui sélectionne parmi des ensembles prédéfinis, ou
vous permet de créer vos propres ensembles. Vous pouvez modifier l'ensemble actuel avec la touche 'e'.

Ce mode n'affiche pas vraiment de tableaux comme les autres modes. Au lieu de cela, il utilise un
définition de table pour extraire et formater les données, mais il transforme ensuite le résultat en
manières spéciales avant de le sortir. Il utilise la définition de table "var_status" pour
ce.

T : Transactions InnoDB
Ce mode affiche les transactions de la sortie du moniteur InnoDB, dans top-comme format.
Ce mode est la raison pour laquelle j'ai écrit innotop.

Vous pouvez tuer des requêtes ou des processus avec les touches « k » et « x », et EXPLIQUER une requête avec
les touches 'e' ou 'f'. InnoDB n'imprime pas la requête complète dans les transactions, donc
expliquer peut ne pas fonctionner correctement si la requête est tronquée.

L'en-tête d'information peut être activé et désactivé avec la touche « h ». Par défaut,
innotop masque les transactions inactives et sa propre transaction. Vous pouvez l'activer
et off avec les touches 'i' et 'a'.

Ce mode affiche par défaut les tables "t_header" et "innodb_transactions".

INNOTOP STATUT


La première ligne affichée par innotop est une sorte de "barre d'état". Ce qu'il contient dépend de
le mode dans lequel vous vous trouvez et les serveurs que vous surveillez. Les premiers mots sont toujours
[RO] (si readonly est défini sur 1), le mode innotop, tel que "InnoDB Txns" pour le mode T,
suivi d'un rappel d'appuyer sur '?' pour obtenir de l'aide à tout moment.

ONE SERVEUR
Le cas le plus simple est celui où vous surveillez un seul serveur. Dans ce cas, le nom de
la connexion est la suivante sur la ligne d'état. C'est le nom que vous avez donné lorsque vous avez créé le
connexion -- probablement le nom d'hôte du serveur MySQL. Ceci est suivi par le serveur
disponibilité.

Si vous êtes dans un mode InnoDB, comme T ou B, le mot suivant est "InnoDB" suivi de quelques
informations sur la sortie SHOW INNODB STATUS utilisée pour rendre l'écran. Le premier mot
est le nombre de secondes depuis le dernier SHOW INNODB STATUS, qu'InnoDB utilise pour calculer
quelques statistiques par seconde. Le suivant est un smiley indiquant si l'InnoDB
la sortie est tronquée. Si le smiley est un :-), tout va bien ; il n'y a pas de troncature. UNE
:^| signifie que la liste des transactions est si longue, InnoDB n'a imprimé qu'une partie des
transactions. Enfin, un froncement de sourcils :-( signifie que la sortie est incomplète, ce qui est probablement dû
à un blocage imprimant trop d'informations sur le blocage (voir "D: InnoDB Deadlocks").

Les deux mots suivants indiquent les requêtes du serveur par seconde (RPS) et le nombre de threads
(des liens) existent. Enfin, le numéro de version du serveur est la dernière chose sur la ligne.

PLUSIEURS LES SERVEURS
Si vous surveillez plusieurs serveurs (voir "CONNEXIONS SERVEUR"), la ligne d'état ne
n'affiche aucun détail sur les serveurs individuels. Au lieu de cela, il affiche les noms des
connexions actives. Encore une fois, ce sont les noms de connexion que vous avez spécifiés, qui sont
probablement le nom d'hôte du serveur. Une connexion qui a une erreur est précédée d'un
point d'exclamation.

Si vous surveillez un groupe de serveurs (voir « GROUPES DE SERVEURS »), la ligne d'état affiche le
nom du groupe. Si une connexion dans le groupe a une erreur, le nom du groupe est
suivi de la fraction des connexions qui n'ont pas d'erreurs.

Voir « GESTION DES ERREURS » pour plus de détails sur la gestion des erreurs d'innotop.

SUIVI A DOSSIER
Si vous donnez un nom de fichier sur la ligne de commande, innotop ne se connectera à AUCUN serveur à
tout. Il surveillera le fichier spécifié pour la sortie d'état d'InnoDB et l'utilisera comme données
la source. Il affichera toujours une seule connexion appelée « fichier ». Et comme il ne peut pas
se connecter à un serveur, il ne peut pas déterminer depuis combien de temps le serveur qu'il surveille est actif ;
il calcule donc la disponibilité du serveur en tant que temps écoulé depuis le début de l'exécution d'innotop.

SERVEUR ADMINISTRATION


Bien qu'innotop soit avant tout un moniteur qui vous permet de surveiller et d'analyser vos serveurs, il peut
également envoyer des commandes aux serveurs. Les commandes les plus fréquemment utiles tuent les requêtes
et arrêter ou démarrer les esclaves.

Vous pouvez supprimer une connexion ou, dans les versions plus récentes de MySQL, supprimer une requête mais pas une
connexion, à partir des modes "Q: Query List" et "T: InnoDB Transactions". Appuyez sur « k » pour émettre un
commande KILL, ou 'x' pour émettre une commande KILL QUERY. innotop vous demandera le
serveur et/ou identifiant de connexion à tuer (innotop ne vous demande pas s'il n'y en a qu'un
choix possible pour toute entrée). innotop présélectionne la requête la plus longue, ou le
connexion la plus ancienne. Confirmez la commande avec 'y'.

Dans "Slave Replication Status"" dans "M: Master mode, vous pouvez démarrer et arrêter les esclaves avec le
touches 'a' et 'o', respectivement. Vous pouvez envoyer ces commandes à plusieurs esclaves à la fois.
innotop remplit une commande par défaut de START SLAVE ou STOP SLAVE pour vous, mais vous pouvez
modifiez réellement la commande et envoyez tout ce que vous souhaitez, comme SET GLOBAL
SQL_SLAVE_SKIP_COUNTER=1 pour que l'esclave saute un événement binlog lorsqu'il démarre.

Vous pouvez également demander à innotop de calculer le premier binlog utilisé par n'importe quel esclave et d'émettre un
PURGER MASTER LOGS sur le maître. Utilisez la touche 'b' pour cela. innotop vous demandera un
master sur lequel exécuter la commande, puis vous demandera les noms de connexion de ce master
esclaves (il n'y a aucun moyen pour innotop de le déterminer lui-même de manière fiable). innotop trouvera
le binlog minimum utilisé par ces connexions esclaves et le suggérer comme argument pour
PURGER LES JOURNAUX MAÎTRES.

SERVEUR CONNECTIONS


Lorsque vous créez une connexion serveur en utilisant '@', innotop vous demande une série d'entrées, comme
suit:

DSN Un DSN est un nom de source de données, qui est l'argument initial passé au module DBI
pour se connecter à un serveur. Il est généralement de la forme

DBI:mysql:;mysql_read_default_group=mysql;host=NOMHÔTE

Étant donné que ce DSN est passé au pilote DBD::mysql, vous devriez lire le
documentation à "/search.cpan.org/dist/DBD-mysql/lib/DBD/mysql.pm"" dans "http: pour le
détails exacts sur toutes les options que vous pouvez passer le pilote dans le DSN. Tu peux lire
en savoir plus sur DBI surhttp://dbi.perl.org/docs/>, et surtout à
<http://search.cpan.org/~timb/DBI/DBI.pm>.

L'option mysql_read_default_group=mysql permet au pilote DBD de lire vos options MySQL
des fichiers, tels que ~/.mon.cnf sur les systèmes UNIX. Vous pouvez l'utiliser pour éviter de spécifier un
nom d'utilisateur ou mot de passe pour la connexion.

Tableau des blocages InnoDB
Cet élément facultatif indique à innotop un nom de table qu'il peut utiliser pour créer délibérément un
petite impasse (voir "D: InnoDB Deadlocks"). Si vous spécifiez cette option, vous avez juste besoin
pour être sûr que la table n'existe pas, et qu'innotop peut créer et supprimer la table
avec le moteur de stockage InnoDB. Vous pouvez en toute sécurité omettre ou simplement accepter la valeur par défaut si vous
n'avez pas l'intention de l'utiliser.

Nom d'utilisateur
innotop vous demandera si vous souhaitez spécifier un nom d'utilisateur. Si vous dites 'y', ce sera alors
vous demandera un nom d'utilisateur. Si vous avez un fichier d'options MySQL qui spécifie votre
nom d'utilisateur, vous n'avez pas besoin de spécifier de nom d'utilisateur.

Le nom d'utilisateur par défaut est votre nom de connexion sur le système sur lequel vous exécutez innotop.

Mot de Passe
innotop vous demandera si vous souhaitez spécifier un mot de passe. Comme le nom d'utilisateur, le
le mot de passe est facultatif, mais une invite supplémentaire vous demande si vous souhaitez enregistrer
le mot de passe dans le fichier de configuration innotop. Si vous ne l'enregistrez pas dans le
fichier de configuration, innotop vous demandera un mot de passe à chaque démarrage.
Les mots de passe dans le fichier de configuration innotop sont enregistrés en texte brut, non cryptés dans
en tous cas.

Une fois que vous avez fini de répondre à ces questions, vous devriez être connecté à un serveur. Mais
innotop ne se limite pas à surveiller un seul serveur ; vous pouvez définir plusieurs serveurs
connexions et basculez entre elles en appuyant sur la touche '@'. Voir « PASSAGE ENTRE
CONNEXIONS".

SERVEUR GROUPES


Si vous avez plusieurs instances MySQL, vous pouvez les mettre dans des groupes nommés, tels que « all »,
« maîtres » et « esclaves », qu'innotop peut surveiller tous ensemble.

Vous pouvez choisir le groupe à surveiller avec la touche '#', et vous pouvez appuyer sur la touche TAB pour
passer au groupe suivant. Si vous ne surveillez pas actuellement un groupe, appuyez sur TAB
sélectionne le premier groupe.

Pour créer un groupe, appuyez sur la touche '#' et tapez le nom de votre nouveau groupe, puis tapez le
les noms des connexions que vous souhaitez que le groupe contienne.

COMMUTATION ENTRE CONNECTIONS


innotop vous permet de changer rapidement les serveurs que vous surveillez. Le moyen le plus simple est de
en appuyant sur la touche '@' et en tapant le(s) nom(s) de la ou des connexion(s) que vous souhaitez utiliser. Cette
le réglage est par mode, vous pouvez donc surveiller différentes connexions dans chaque mode, et innotop
mémorise les connexions que vous choisissez.

Vous pouvez rapidement passer à la connexion « suivante » par ordre alphabétique avec la touche « n ».
Si vous surveillez un groupe de serveurs (voir « GROUPES DE SERVEURS »), cela passera au premier
connexion.

Vous pouvez également saisir de nombreux noms de connexion, et innotop récupérera et affichera les données à partir d'eux
tout. Séparez simplement les noms de connexion par des espaces, par exemple « serveur1 serveur2 ».
Encore une fois, si vous tapez le nom d'une connexion qui n'existe pas, innotop vous demandera
pour obtenir des informations sur la connexion et créer la connexion.

Une autre façon de surveiller plusieurs connexions à la fois consiste à utiliser des groupes de serveurs. Vous pouvez utiliser
la touche TAB pour passer au groupe 'suivant' par ordre alphabétique, ou si vous n'êtes pas
surveillant des groupes, TAB passera au premier groupe.

innotop ne récupère pas les données en parallèle des connexions, donc si vous surveillez un grand
groupe ou de nombreuses connexions, vous remarquerez peut-être un délai accru entre les ticks.

Lorsque vous surveillez plusieurs connexions, la barre d'état d'innotop change. Voir "INNOTOP
STATUT".

ERREUR MANIPULATION


La gestion des erreurs n'est pas si importante lors de la surveillance d'une seule connexion, mais elle est cruciale
lorsque vous avez de nombreuses connexions actives. Un serveur en panne ou une connexion perdue ne devrait pas
crash innotop. Par conséquent, innotop continuera à s'exécuter même en cas d'erreur ; ce
n'affichera simplement aucune information de la connexion qui a eu une erreur. À cause de
cela, le comportement d'innotop pourrait vous dérouter. C'est une fonctionnalité, pas un bug !

innotop ne continue pas à interroger les connexions qui ont des erreurs, car elles peuvent ralentir
innotop et le rendent difficile à utiliser, surtout si l'erreur est un problème de connexion et
provoque une longue temporisation. Au lieu de cela, innotop réessaye la connexion de temps en temps pour voir si
l'erreur existe toujours. Si c'est le cas, il attendra jusqu'à un certain point dans le futur. L'attente
le temps augmente en ticks comme la série de Fibonacci, il essaie donc moins fréquemment avec le temps
passe.

Étant donné que les erreurs ne peuvent se produire que dans certains modes en raison des commandes SQL émises dans
ces modes, innotop garde une trace du mode qui a causé l'erreur. Si vous passez à un
mode différent, innotop réessayera la connexion au lieu d'attendre.

Par défaut, innotop affichera le problème en texte rouge en bas du premier tableau
sur l'écran. Vous pouvez désactiver ce comportement avec le "show_cxn_errors_in_tbl"
option de configuration, qui est activée par défaut. Si l'option "debug" est activée,
innotop affichera l'erreur au bas de chaque tableau, pas seulement le premier. Et si
"show_cxn_errors" est activé, innotop imprimera également le texte d'erreur sur STDOUT. Erreur
les messages peuvent s'afficher uniquement dans le mode qui a causé l'erreur, selon le mode et
si innotop évite d'interroger cette connexion.

NON INTERACTIF FONCTIONNEMENT


Vous pouvez exécuter innotop en mode non interactif, auquel cas il est entièrement contrôlé depuis
le fichier de configuration et les options de ligne de commande. Pour démarrer innotop en mode non interactif
mode, donnez l'option de ligne de commande L"<--nonint">. Cela change le comportement d'innotop dans le
manières suivantes :

· Certains modules Perl ne sont pas chargés. Term::Readline n'est pas chargé, car innotop
n'invite pas de manière interactive. Les modules Term::ANSIColor et Win32::Console::ANSI sont
pas chargé. Term::ReadKey est toujours utilisé, car innotop peut avoir à demander
mots de passe de connexion au démarrage.

· innotop n'efface pas l'écran après chaque tick.

· innotop ne conserve aucune modification du fichier de configuration.

· Si "--count" est donné et innotop est en mode incrémental (voir "status_inc" et
"--inc"), innotop s'actualise une fois de plus que spécifié pour pouvoir imprimer
statistiques incrémentales. Cela supprime la sortie pendant le premier tick, donc innotop peut
semblent pendre.

· innotop n'affiche que le premier tableau dans chaque mode. C'est ainsi que la sortie peut être
facilement traité avec d'autres utilitaires de ligne de commande tels que awk et sed. Changer
quels tableaux s'affichent dans chaque mode, voir "TABLES". Étant donné que le mode « Q : Liste de requêtes » est ainsi
important, innotop désactive automatiquement la table "q_header". Cela garantit que vous
voir la table "processlist", même si vous avez configuré innotop pour afficher le q_header
table pendant le fonctionnement interactif. De même, en mode « T : InnoDB Transactions », le
La table "t_header" est supprimée, vous ne voyez donc que la table "innodb_transactions".

· Toutes les sorties sont séparées par des tabulations au lieu d'être alignées sur des colonnes avec des espaces, et
innotop imprime le contenu complet de chaque tableau au lieu d'en imprimer un seul écran
à la fois.

· innotop n'imprime les en-têtes de colonne qu'une seule fois au lieu de chaque tick (voir "hide_hdr").
innotop n'imprime pas les légendes des tables (voir "display_table_captions"). innotop assure
il n'y a pas de lignes vides dans la sortie.

· innotop n'honore pas la transformation "raccourcir", qui raccourcit normalement certains
nombres dans des formats lisibles par l'homme.

· innotop n'imprime pas de ligne d'état (voir "INNOTOP STATUS").

CONFIGURATION


Presque tout sur innotop est configurable. La plupart des choses peuvent changer avec
commandes intégrées, mais vous pouvez également modifier le fichier de configuration.

Lors de l'exécution d'innotop, appuyez sur la touche '$' pour afficher la boîte de dialogue d'édition de la configuration.
Appuyez sur une autre touche pour sélectionner le type de données que vous souhaitez modifier :

S : Déclaration Temps de sommeil
Modifie les délais de sommeil des instructions SQL, qui font une pause innotop pour la quantité spécifiée de
temps après l'exécution d'une instruction. Voir « instructions SQL » pour une définition de chaque
déclaration et ce qu'elle fait. Par défaut, innotop ne retarde aucune instruction.

Cette fonctionnalité est incluse afin que vous puissiez personnaliser les effets secondaires causés par la surveillance
votre serveur. Vous ne verrez peut-être aucun effet, mais certains utilisateurs d'innotop ont remarqué que
certaines versions de MySQL sous une charge très élevée avec InnoDB activé prennent plus de temps que d'habitude
pour exécuter SHOW GLOBAL STATUS. Si innotop appelle SHOW FULL PROCESSLIST immédiatement
par la suite, la liste de processus contient plus de requêtes que la machine n'en fait en moyenne à
n'importe quel moment donné. Configurer innotop pour qu'il s'interrompe brièvement après avoir appelé SHOW GLOBAL
STATUS atténue cet effet.

Les temps de sommeil sont stockés dans la section "stmt_sleep_times" du fichier de configuration.
Les veilles fractionnées de seconde sont prises en charge, sous réserve des limitations de votre matériel.

c : Modifier les colonnes
Démarre l'éditeur de table sur l'une des tables affichées. Voir "EDITEUR DE TABLE". Une
une autre façon de démarrer l'éditeur de table sans entrer dans la boîte de dialogue de configuration est
avec la touche '^'.

g : Configuration générale
Démarre l'éditeur de configuration pour éditer la configuration globale et spécifique au mode
variables (voir "MODES"). innotop vous propose de choisir une variable parmi les
globales et spécifiques au mode selon le mode actuel.

k : Règles de coloration des lignes
Démarre l'éditeur de règles de coloration des lignes sur l'une des tables affichées. Voir "COULEURS"
pour en savoir plus.

p : Gérer les plugins
Démarre l'éditeur de configuration du plugin. Voir "PLUGINS" pour plus de détails.

s : groupes de serveurs
Vous permet de créer et de modifier des groupes de serveurs. Voir "GROUPES DE SERVEURS".

t : choisir les tableaux affichés
Permet de choisir les tableaux à afficher dans ce mode. Voir "MODES" et "TABLEAUX".

CONFIGURATION DOSSIER


Les emplacements des fichiers de configuration par défaut d'innotop sont $HOME/.innotop et
/etc/innotop/innotop.conf, et ils sont recherchés dans cet ordre. Si le premier
fichier de configuration existe, le second ne sera pas traité. Ceux-ci peuvent être remplacés avec
l'option de ligne de commande "--config". Vous pouvez le modifier à la main en toute sécurité, mais innotop lit
le fichier de configuration au démarrage et, si readonly est défini sur 0, l'écrit à nouveau
quand il sort. Ainsi, si readonly est défini sur 0, toutes les modifications que vous apportez à la main pendant innotop
est en cours d'exécution sera perdu.

innotop ne stocke pas toute sa configuration dans le fichier de configuration. Il a un énorme
ensemble de valeurs de configuration par défaut qu'il contient uniquement en mémoire, et la configuration
fichier remplace uniquement ces valeurs par défaut. Lorsque vous personnalisez un paramètre par défaut, innotop
avis, puis stocke les personnalisations dans le fichier. Cela réduit la taille du fichier,
facilite la modification et facilite les mises à niveau.

Un fichier de configuration est en lecture seule par défaut. Vous pouvez remplacer cela avec "--write". Voir
"lecture seulement".

Le fichier de configuration est organisé en sections comme un fichier INI. Chaque section commence
avec [nom-section] et se termine par [/nom-section]. Les entrées de chaque section ont un
syntaxe différente selon les données qu'ils doivent stocker. Vous pouvez mettre des commentaires dans le
déposer; toute ligne commençant par un caractère # est un commentaire. innotop ne lira pas le
commentaires, afin qu'il ne les réécrive pas dans le fichier lorsqu'il se ferme. Commentaires en lecture-
cependant, seuls les fichiers de configuration sont toujours utiles.

La première ligne du fichier est le numéro de version d'innotop. Cela permet à innotop de remarquer quand le
le format de fichier n'est pas rétrocompatible et mettez à niveau en douceur sans détruire votre
configuration personnalisée.

La liste suivante décrit chaque section du fichier de configuration et les données qu'il
contient:

général
La section « général » contient des variables de configuration globales et des variables qui peuvent
être spécifique au mode, mais n'appartenir à aucune autre section. La syntaxe est simple
liste clé=valeur. innotop écrit un commentaire au-dessus de chaque valeur pour vous aider à éditer le fichier
par la main.

S_fonc
Contrôle la présentation en mode S (voir "S : Variables & Status"). Si g, les valeurs sont
graphiquement; si s, les valeurs sont comme vmstat ; si p, les valeurs sont dans un tableau pivoté.

S_set
Spécifie l'ensemble de variables à afficher en mode « S : Variables et état ». Voir
"ENSEMBLES VARIABLES".

auto_wipe_dl
Demande à innotop d'effacer automatiquement les gros blocages lorsqu'il les remarque.
Lorsque cela se produit, vous remarquerez peut-être un léger retard. À la coche suivante, vous
voient généralement les informations tronquées par la grande impasse.

jeu de caractères
Spécifie le type de caractères à autoriser via le "no_ctrl_char"
transformation. Cela empêche les caractères non imprimables de confondre un terminal
lorsque vous surveillez des requêtes contenant des données binaires, telles que des images.

La valeur par défaut est 'ascii', qui considère tout ce qui n'est pas ASCII normal comme un
caractère de contrôle. Les autres valeurs autorisées sont « unicode » et « aucun ». 'rien'
considère chaque caractère comme un caractère de contrôle, ce qui peut être utile pour réduire
TOUS les champs de texte dans les requêtes.

cmd_filter
Il s'agit du préfixe qui filtre les variables en mode "C: Command Summary".

Couleur
Si la coloration terminale est autorisée.

cxn_timeout
Sur les versions MySQL 4.0.3 et plus récentes, cette variable est utilisée pour définir le
timeout, donc MySQL ne ferme pas la connexion s'il n'est pas utilisé pendant un certain temps.
Cela peut se produire parce qu'une connexion n'est pas surveillée dans un mode particulier, par exemple
Exemple.

déboguer
Cette option permet des erreurs plus détaillées et rend innotop plus strict dans certains
des endroits. Cela peut aider au débogage des filtres et d'autres codes définis par l'utilisateur. Ça aussi
oblige innotop à écrire beaucoup d'informations dans le "fichier de débogage" en cas de plantage.

fichier de débogage
Un fichier dans lequel innotop écrira des informations en cas de plantage. Voir
"DES DOSSIERS".

display_table_captions
innotop affiche une légende de tableau au-dessus de la plupart des tableaux. Cette variable supprime ou
affiche les sous-titres sur toutes les tables dans le monde. Certaines tables sont configurées avec le
hide_caption, qui remplace celle-ci.

de défis
Indique s'il faut afficher les variables et l'état GLOBAL. innotop essaie seulement de le faire sur
serveurs qui prennent en charge l'option GLOBAL pour SHOW VARIABLES et SHOW STATUS. Dans
certaines versions de MySQL, vous avez besoin de certains privilèges pour le faire ; si vous n'avez pas
eux, innotop ne sera pas en mesure de récupérer les données de variable et d'état. Cette
La variable de configuration vous permet d'exécuter innotop et de récupérer les données que vous pouvez même
sans les privilèges élevés.

Je ne peux plus trouver ou reproduire la situation où GLOBAL n'était pas autorisé, mais je
sais qu'il y en avait un.

graph_char
Définit le caractère à utiliser lors du tracé de graphiques en mode "S: Variables & Status".

header_highlight
Définit comment mettre en évidence les en-têtes de colonne. Cela ne fonctionne que si Term::ANSIColor est
disponible. Les valeurs valides sont « gras » et « souligné ».

cacher_hdr
Masque les en-têtes de colonne globalement.

intervalle
L'intervalle auquel innotop actualisera ses données (ticks). L'intervalle est
implémenté comme un temps de sommeil entre les ticks, donc le véritable intervalle variera
en fonction du temps qu'il faut à innotop pour récupérer et restituer les données.

Cette variable accepte des fractions de seconde.

mode
Le mode dans lequel innotop doit démarrer. Les arguments admissibles sont les mêmes que
pressions de touches qui sélectionnent un mode de manière interactive. Voir "MODES".

no_chiffres
Combien de chiffres afficher en nombres fractionnaires et en pourcentages. La plage de cette variable
est compris entre 0 et 9 et peut être réglé directement depuis le mode "S: Variables & Status" avec
les touches '+' et '-'. Il est utilisé dans le "set_precision", "shorten" et "percent"
métamorphoses.

num_status_sets
Contrôle le nombre d'ensembles de variables d'état à afficher dans « S : Variables et
État". Il contrôle également le nombre d'anciens ensembles de variables conservés par innotop
dans sa mémoire, donc plus cette variable est grande, plus innotop utilise de mémoire.

rép_plugin
Spécifie où les plugins peuvent être trouvés. Par défaut, innotop stocke les plugins dans le
sous-répertoire 'plugins' de votre répertoire de configuration innotop.

lecture seulement
Si le fichier de configuration est en lecture seule. Cela ne peut pas être défini de manière interactive.

show_cxn_errors
Fait des erreurs de connexion d'impression innotop à STDOUT. Voir « TRAITEMENT DES ERREURS ».

show_cxn_errors_in_tbl
Innotop affiche les erreurs de connexion sous forme de lignes dans le premier tableau à l'écran. Voir
"LA GESTION DES ERREURS".

show_percent
Ajoute un caractère « % » après la valeur renvoyée par la transformation « pourcentage ».

Afficher la barre d'état
Contrôle s'il faut afficher la barre d'état à l'écran. Voir "ÉTAT INNOTOP".

skip_innodb
Désactive la récupération de SHOW INNODB STATUS, au cas où vos serveurs n'auraient pas InnoDB
activé et vous ne voulez pas qu'innotop essaie de le récupérer. Cela peut aussi être utile
lorsque vous n'avez pas le privilège SUPER, requis pour exécuter SHOW INNODB STATUS.

statut_inc
Indique s'il faut afficher les valeurs absolues ou incrémentielles pour les variables d'état. Incrémentale
les valeurs sont calculées comme un décalage par rapport à la dernière valeur innotop saw pour cela
variable. Il s'agit d'un paramètre global, mais qui deviendra probablement spécifique au mode à
quelque point. À l'heure actuelle, il est honoré de manière un peu incohérente; certains modes ne paient pas
attention à cela.

plugins
Cette section contient une liste de noms de packages de plugins actifs. Si le plugin existe,
innotop l'activera. Voir "PLUGINS" pour plus d'informations.

filtres
Cette section contient des filtres définis par l'utilisateur (voir « FILTRES »). Chaque ligne est au format
filter_name=text='filter text' tbls='table list'.

Le texte du filtre est le texte du code du sous-programme. La liste des tableaux est une liste de
tables auxquelles le filtre peut s'appliquer. Par défaut, les filtres définis par l'utilisateur s'appliquent au
table pour laquelle ils ont été créés, mais vous pouvez le remplacer manuellement en modifiant le
définition dans le fichier de configuration.

filtres_actifs
Cette section stocke les filtres actifs sur chaque table. Chaque ligne est dans le
format nom_table=liste_filtres.

tbl_meta
Cette section stocke les colonnes définies par l'utilisateur ou personnalisées par l'utilisateur (voir « COLONNES »). Chaque
la ligne est au format col_name=properties, où les propriétés sont un
nom=liste de valeurs entre guillemets.

liens
Cette section contient les connexions serveur que vous avez définies. Chaque ligne est dans le
format name=properties, où les propriétés sont une liste name=value. Les propriétés
sont explicites, et le seul qui est traité spécialement est « pass », qui est
présent uniquement si 'savepass' est défini. Cette section du fichier de configuration sera
ignoré si des options de ligne de commande DSN, nom d'utilisateur ou mot de passe sont utilisées. Voir "SERVEUR
CONNEXIONS".

active_connections
Cette section contient une liste des connexions actives dans chaque mode. Chaque ligne est
au format nom_mode=liste_connexions.

groupes_serveurs
Cette section contient des groupes de serveurs. Chaque ligne est au format name=connection_list.
Voir "GROUPES DE SERVEURS".

groupes_serveurs_actifs
Cette section contient une liste des groupes de serveurs actifs dans chaque mode. Chaque ligne est
au format nom_mode=groupe_serveur.

valeurs_max_vues
Cette section contient les valeurs maximales vues pour les variables. Ceci est utilisé pour mettre à l'échelle le
graphiques en mode "S: Variables & Status". Chaque ligne est au format nom=valeur.

colonnes_actives
Cette section contient des listes de colonnes de tableau. Chaque ligne est au format
tbl_name=liste_colonnes. Voir "COLONNES".

sort_cols
Cette section contient la définition du tri. Chaque ligne est au format
tbl_name=liste_colonnes. Si une colonne est préfixée par « - », cette colonne est triée par ordre décroissant.
Voir "TRI".

tables_visibles
Cette section définit quelles tables sont visibles dans chaque mode. Chaque ligne est dans le
format nom_mode=liste_table. Voir "TABLEAUX".

ensembles de variables
Cette section définit les ensembles de variables à utiliser en mode "S: Status & Variables". Chaque ligne
est au format nom=liste_variables. Voir "ENSEMBLES DE VARIABLES".

les couleurs
Cette section définit les règles de colorisation. Chaque ligne est au format
tbl_name=liste_propriétés. Voir "COULEURS".

stmt_sleep_times
Cette section contient les temps de sommeil des déclarations. Chaque ligne est au format
nom_déclaration=heure_sommeil. Voir « S : Temps de sommeil des relevés ».

par groupe
Cette section contient des listes de colonnes pour les expressions group_by de table. Chaque ligne est en
le format tbl_name=column_list. Voir "GROUPAGE".

PERSONNALISER


Vous pouvez personnaliser beaucoup innotop. Par exemple, vous pouvez :

· Choisissez les tableaux à afficher et dans quel ordre.

· Choisissez les colonnes qui se trouvent dans ces tables et créez de nouvelles colonnes.

· Filtrez les lignes qui s'affichent avec des filtres intégrés, des filtres définis par l'utilisateur et des
filtres

· Triez les lignes pour mettre les données importantes en premier ou regroupez les lignes associées.

· Mettez en surbrillance les lignes avec de la couleur.

· Personnalisez l'alignement, la largeur et la mise en forme des colonnes et appliquez des transformations
aux colonnes pour extraire des parties de leurs valeurs ou formater les valeurs comme vous le souhaitez (par
exemple, raccourcir de grands nombres en unités familières).

· Concevez vos propres expressions pour extraire et combiner les données selon vos besoins. Cela vous donne
flexibilité illimitée.

Tous ces éléments et bien d'autres sont expliqués dans les sections suivantes.

TABLES
Une table est ce à quoi vous vous attendez : une collection de colonnes. Il a également d'autres propriétés,
comme une légende. Les filtres, les règles de tri et les règles de colorisation appartiennent aux tables et
sont traités dans les sections suivantes.

En interne, les métadonnées de la table sont définies dans une structure de données appelée %tbl_meta. Ce hachage
contient toutes les définitions de table intégrées, qui contiennent de nombreuses instructions par défaut pour
innotop. Les métadonnées comprennent la légende, une liste de colonnes que l'utilisateur a personnalisées, un
liste de colonnes, une liste de colonnes visibles, une liste de filtres, des règles de couleurs, une colonne de tri
liste, le sens du tri et quelques informations sur les sources de données de la table. La plupart de cela
est personnalisable via l'éditeur de table (voir "EDITEUR DE TABLE").

Vous pouvez choisir les tables à afficher en appuyant sur la touche '$'. Voir "MODES" et "TABLEAUX".

Le cycle de vie de la table est le suivant :

· Chaque table commence par une source de données, qui est un tableau de hachages. Voir ci-dessous pour
détails sur les sources de données.

· Chaque élément de la source de données devient une ligne dans le tableau final.

· Pour chaque élément de la source de données, innotop extrait les valeurs de la source et
crée une ligne. Cette ligne est un autre hachage, que les étapes ultérieures appelleront $set.
Les valeurs extraites par innotop sont déterminées par les colonnes de la table. Chaque colonne a un
sous-programme d'extraction, compilé à partir d'une expression (voir "EXPRESSIONS"). La résultante
row est un hachage dont les clés portent le même nom que le nom de la colonne.

· innotop filtre les lignes en supprimant celles qui n'ont pas besoin d'être affichées. Voir
"FILTRES".

· innotop trie les lignes. Voir "TRI".

· innotop regroupe les lignes, si spécifié. Voir "GROUPAGE".

· innotop colore les lignes. Voir "COULEURS".

· innotop transforme les valeurs des colonnes dans chaque ligne. Voir " TRANSFORMATION ".

· innotop fait éventuellement pivoter les lignes (voir "PIVOTER"), puis les filtre et les trie.

· innotop formate et justifie les lignes sous forme de tableau. Lors de cette étape, innotop applique
mise en forme supplémentaire des valeurs de colonne, y compris l'alignement, le maximum et le minimum
largeurs. innotop effectue également une vérification finale des erreurs pour s'assurer qu'il n'y a pas de plantages dus à
valeurs indéfinies. innotop ajoute ensuite une légende si spécifié, et la table est prête à
imprimer.

Le cycle de vie est légèrement différent si le tableau est pivoté, comme indiqué ci-dessus. Clarifier,
si le tableau est pivoté, le processus est extraire, regrouper, transformer, pivoter, filtrer, trier,
créer. S'il n'est pas pivoté, le processus consiste à extraire, filtrer, trier, grouper, colorer,
transformer, créer. Ce processus légèrement alambiqué ne correspond pas très bien à SQL, mais
le pivotement complique les choses assez complètement. En gros, filtrer et trier
arriver aussi tard que nécessaire pour obtenir le résultat final comme vous pouvez vous y attendre, mais dès que
possible pour plus d'efficacité.

Chaque table intégrée est décrite ci-dessous :

adaptive_hash_index
Affiche des données sur l'index de hachage adaptatif d'InnoDB. Source de données : "STATUS_VARIABLES".

pool_tampon
Affiche des données sur le pool de mémoire tampon d'InnoDB. Source de données : "STATUS_VARIABLES".

cmd_summary
Affiche les variables d'état pondérées. Source de données : "STATUS_VARIABLES".

blocage_verrouillage
Affiche les verrous maintenus et attendus par le dernier blocage détecté. Données
source : "DEADLOCK_LOCKS".

impasse_transactions
Affiche les transactions impliquées dans le dernier blocage détecté. La source de données:
"DEADLOCK_TRANSACTIONS".

expliquer
Affiche la sortie de EXPLAIN. Source des données : « EXPLIQUER ».

fichier_io_misc
Affiche des données sur les opérations de fichier et d'E/S d'InnoDB. La source de données:
"STATUS_VARIABLES".

erreur_fk
Affiche diverses données sur la dernière erreur de clé étrangère d'InnoDB. La source de données:
"STATUS_VARIABLES".

innodb_locks
Affiche les verrous InnoDB. Source de données : "INNODB_LOCKS".

innodb_transactions
Affiche des données sur les transactions en cours d'InnoDB. La source de données:
"INNODB_TRANSACTIONS".

insert_buffers
Affiche des données sur le tampon d'insertion d'InnoDB. Source de données : "STATUS_VARIABLES".

io_threads
Affiche des données sur les threads d'E/S d'InnoDB. Source de données : "IO_THREADS".

log_statistiques
Affiche des données sur le système de journalisation d'InnoDB. Source de données : "STATUS_VARIABLES".

statut_maître
Affiche l'état du maître de réplication. Source de données : "STATUS_VARIABLES".

tables_ouvertes
Affiche les tables ouvertes. Source de données : "OPEN_TABLES".

page_statistiques
Affiche les statistiques de la page InnoDB. Source de données : "STATUS_VARIABLES".

en attente_io
Affiche les opérations d'E/S en attente d'InnoDB. Source de données : "STATUS_VARIABLES".

liste des processus
Affiche les processus MySQL actuels (threads/connexions). Source des données : « LISTE DE PROCESSUS ».

q_en-tête
Affiche diverses valeurs d'état. Source de données : "STATUS_VARIABLES".

rangée_opération_misc
Affiche des données sur les opérations de ligne d'InnoDB. Source de données : "STATUS_VARIABLES".

opérations_ligne
Affiche des données sur les opérations de ligne d'InnoDB. Source de données : "STATUS_VARIABLES".

sémaphores
Affiche des données sur les sémaphores et mutex d'InnoDB. Source de données : "STATUS_VARIABLES".

slave_io_status
Affiche des données sur le thread d'E/S esclave. Source de données : "STATUS_VARIABLES".

statut_esclave_sql
Affiche des données sur le thread SQL esclave. Source de données : "STATUS_VARIABLES".

t_en-tête
Affiche diverses valeurs d'état InnoDB. Source de données : "STATUS_VARIABLES".

var_statut
Affiche les données configurables par l'utilisateur. Source de données : "STATUS_VARIABLES".

attendre_tableau
Affiche des données sur le tableau d'attente du système d'exploitation d'InnoDB. Source de données : "OS_WAIT_ARRAY".

COLONNES
Les colonnes appartiennent aux tables. Vous pouvez choisir les colonnes d'un tableau en appuyant sur la touche '^', ce qui
démarre le "TABLE EDITOR" et vous permet de choisir et d'éditer des colonnes. Appuyer sur 'e' de l'intérieur
l'éditeur de table permet de modifier les propriétés de la colonne :

· hdr : un en-tête de colonne. Celui-ci apparaît dans la première ligne du tableau.

· juste : justification. '-' signifie justifié à gauche et '' signifie justifié à droite, tout comme
avec les codes de formatage printf (ce n'est pas une coïncidence).

· déc : aligner davantage la colonne sur la virgule décimale.

· num : si la colonne est numérique. Cela affecte la façon dont les valeurs sont triées (lexiquement ou
numériquement).

· label : une petite note sur la colonne, qui apparaît dans les boîtes de dialogue qui aident l'utilisateur
choisissez des colonnes.

· src : une expression qu'innotop utilise pour extraire les données de la colonne de sa source (voir
"SOURCE D'INFORMATION"). Voir "EXPRESSIONS" pour plus d'informations sur les expressions.

· minw : spécifie une largeur d'affichage minimale. Cela aide à stabiliser l'affichage, ce qui
facilite la lecture si les données changent fréquemment.

· maxw : similaire à minw.

· trans : une liste de transformations de colonnes. Voir " TRANSFORMATION ".

· agg : une fonction d'agrégat. Voir "GROUPAGE". La valeur par défaut est « premier ».

· aggonly : contrôle si la colonne s'affiche uniquement lorsque le regroupement est activé sur la table
(voir "GROUPAGE"). Par défaut, ceci est désactivé. Cela signifie que les colonnes seront toujours
affiché par défaut, que le regroupement soit activé ou non. Si l'agressivité d'une colonne est définie
true, la colonne apparaîtra lorsque vous basculerez le regroupement sur la table. Plusieurs colonnes
sont définis de cette façon, comme la colonne count sur "processlist" et "innodb_transactions",
vous ne voyez donc pas de décompte lorsque le regroupement n'est pas activé, mais vous le faites quand il l'est.

FILTRES
Les filtres suppriment des lignes de l'affichage. Ils se comportent un peu comme une clause WHERE en SQL.
innotop a plusieurs filtres intégrés, qui suppriment les informations non pertinentes comme inactives
requêtes, mais vous pouvez également définir les vôtres. innotop vous permet également de créer des filtres rapides,
qui ne sont pas enregistrés dans le fichier de configuration et ne sont qu'un moyen simple de visualiser rapidement
seulement quelques lignes.

Vous pouvez activer ou désactiver un filtre sur n'importe quelle table. Appuyez sur la touche '%' (mnémonique : % regarde
un peu comme une ligne filtrée entre deux cercles) et choisissez la table que vous voulez
filtre, si demandé. Vous verrez alors une liste de filtres possibles et une liste de filtres
actuellement activé pour cette table. Tapez les noms des filtres que vous souhaitez appliquer et appuyez sur
Entrez.

DÉFINI PAR L'UTILISATEUR FILTRES

Si vous saisissez un nom qui n'existe pas, innotop vous demandera de créer le filtre.
Les filtres sont faciles à créer si vous connaissez Perl, et pas difficiles si vous ne le connaissez pas. Que fais tu
crée un sous-programme qui renvoie true si la ligne doit être affichée. La rangée est un
référence de hachage passée à votre sous-routine en tant que $set.

Par exemple, imaginez que vous vouliez filtrer la table de liste de processus afin de ne voir que les requêtes qui
ont couru plus de cinq minutes. Tapez un nouveau nom pour votre filtre, et quand
invité pour le corps du sous-programme, appuyez sur TAB pour lancer l'auto-complétion de votre terminal.
Vous verrez les noms des colonnes dans la table "processlist" (innotop essaie généralement de
vous aider avec les listes d'auto-complétion). Vous souhaitez filtrer sur la colonne « heure ». Tapez le
text "$set->{time} > 300" pour renvoyer true lorsque la requête date de plus de cinq minutes.
C'est tout ce que vous devez faire.

En d'autres termes, le code que vous saisissez est entouré d'un contexte implicite, qui ressemble
comme ça:

sous-filtre {
mon ( $set ) = @_;
# VOTRE CODE ICI
}

Si votre filtre ne fonctionne pas, ou si quelque chose d'autre se comporte soudainement différemment, vous pourriez
avez fait une erreur dans votre filtre, et innotop détecte l'erreur en silence. Essayer
activer "debug" pour que innotop renvoie une erreur à la place.

FILTRES RAPIDES

Les filtres rapides d'innotop sont un raccourci pour créer un filtre temporaire qui ne persiste pas
lorsque vous redémarrez innotop. Pour créer un filtre rapide, appuyez sur la touche '/'. innotop va
vous demandera le nom de la colonne et le texte du filtre. Encore une fois, vous pouvez utiliser la saisie semi-automatique sur
noms de colonnes. Le texte du filtre peut être simplement le texte que vous souhaitez « rechercher ». Pour
exemple, pour filtrer la table "processlist" sur les requêtes faisant référence à la table produits,
tapez '/' puis 'info produit'.

Le texte du filtre peut en fait être n'importe quelle expression régulière Perl, mais bien sûr un littéral
une chaîne comme 'product' fonctionne bien comme expression régulière.

Dans les coulisses, innotop compile le filtre rapide en un filtre spécialement balisé qui est
sinon comme n'importe quel autre filtre. Il n'est tout simplement pas enregistré dans le fichier de configuration.

Pour effacer les filtres rapides, appuyez sur la touche '\' et innotop les effacera tous en même temps.

TRI
innotop a des valeurs par défaut intégrées pour trier les lignes les plus importantes en haut de la
tableau. Comme toute autre chose dans innotop, vous pouvez personnaliser la façon dont n'importe quelle table est triée.

Pour lancer la boîte de dialogue de tri, lancez l'"EDITEUR DE TABLES" avec la touche '^', choisissez une table si
nécessaire et appuyez sur la touche 's'. Vous verrez une liste de colonnes que vous pouvez utiliser dans le tri
expression et l'expression de tri actuelle, le cas échéant. Entrez une liste de colonnes par lesquelles vous
voulez trier et appuyez sur Entrée. Si vous souhaitez inverser le tri, préfixez le nom de la colonne avec un
signe moins. Par exemple, si vous voulez trier par colonne a ascendante, alors la colonne b
décroissant, tapez 'a -b'. Vous pouvez également ajouter explicitement un + devant les colonnes que vous souhaitez
trier par ordre croissant, mais ce n'est pas obligatoire.

Certains modes ont des touches mappées pour ouvrir cette boîte de dialogue directement et pour inverser rapidement le tri
direction. Presse '?' comme d'habitude pour voir quelles touches sont mappées dans n'importe quel mode.

REGROUPEMENT
innotop peut regrouper ou agréger des lignes (les termes sont utilisés de manière interchangeable). Cette
est assez similaire à une clause SQL GROUP BY. Vous pouvez spécifier de grouper sur certaines colonnes,
ou si vous n'en spécifiez aucune, l'ensemble des lignes est traité comme un seul groupe. C'est
tout à fait comme SQL jusqu'à présent, mais contrairement à SQL, vous pouvez également sélectionner des colonnes non groupées. innotop
regroupe en fait chaque colonne. Si vous ne spécifiez pas explicitement une fonction de regroupement,
la valeur par défaut est « premier ». Il s'agit essentiellement d'une commodité, vous n'avez donc pas à spécifier un
fonction d'agrégation pour chaque colonne que vous voulez dans le résultat.

Vous pouvez basculer rapidement le regroupement sur une table avec la touche '=', qui bascule son agrégat
propriété. Cette propriété ne persiste pas dans le fichier de configuration.

Les colonnes par lesquelles la table est regroupée sont spécifiées dans sa propriété group_by. Lorsque
vous activez le regroupement, innotop place les colonnes group_by à l'extrême gauche du tableau,
même s'ils ne sont pas censés être visibles. Le reste des colonnes visibles apparaît dans
commande après eux.

Deux tables ont des listes group_by par défaut et une colonne de comptage intégrée : "processlist" et
"innodb_transactions". Le regroupement est par connexion et statut, vous pouvez donc voir rapidement
combien de requêtes ou de transactions sont dans un état donné sur chaque serveur que vous surveillez.
Les colonnes de temps sont agrégées sous forme de somme ; les autres colonnes sont laissées à la valeur par défaut « première »
agrégation.

Par défaut, le tableau affiché en mode "S : Variables & Statut" utilise également le regroupement afin que vous puissiez
surveiller les variables et l'état sur de nombreux serveurs. La fonction d'agrégation par défaut dans
ce mode est 'moy'.

Les fonctions de regroupement valides sont définies dans le hachage %agg_funcs. Ils incluent

premier
Renvoie le premier élément du groupe.

compter
Renvoie le nombre d'éléments dans le groupe, y compris les éléments non définis, un peu comme
COUNT de SQL (*).

avg Renvoie la moyenne des éléments définis dans le groupe.

sum Renvoie la somme des éléments du groupe.

Voici un exemple de regroupement au travail. Supposons que vous ayez un serveur très occupé avec des centaines
de connexions ouvertes, et vous voulez voir combien de connexions sont dans quel état. Utilisant
les règles de regroupement intégrées, vous pouvez appuyer sur « Q » pour entrer en mode « Q : liste de requêtes ». Appuyez sur '='
pour basculer le regroupement (si nécessaire, sélectionnez la table "processlist" lorsque vous y êtes invité).

Votre affichage peut maintenant ressembler à ce qui suit :

Liste de requêtes (? pour l'aide) localhost, 32:33, 0.11 QPS, 1 thd, 5.0.38-log

CXN Cmd Cnt ID Utilisateur Requête de l'heure de l'hôte
localhost Requête 49 12933 webusr localhost 19:38 SELECT * FROM
localhost Envoi Da 23 2383 webusr localhost 12:43 SELECT col1,
localhost Sommeil 120 140 webusr localhost 5:18:12
localhost Statistiques 12 19213 webusr localhost 01:19 SELECT * FROM

C'est en fait une image assez inquiétante. Vous avez beaucoup de connexions inactives (Sommeil),
et certaines connexions exécutant des requêtes (Query et Sending Data). C'est bien, mais vous
ont également beaucoup de statut statistique, passant collectivement plus d'une minute. Cela signifie que le
l'optimiseur de requêtes a vraiment du mal à optimiser vos déclarations. Quelque chose est
tort; cela devrait normalement prendre des millisecondes pour optimiser les requêtes. Vous n'avez peut-être pas vu
ce modèle si vous n'avez pas examiné vos connexions dans leur ensemble. (Ceci est une création
exemple, mais cela peut arriver dans la vraie vie).

PIVOTANT
innotop peut faire pivoter un tableau pour un affichage plus compact, similaire à un tableau croisé dynamique dans un
feuille de calcul (également appelée tableau croisé). Le pivotement d'un tableau transforme les colonnes en lignes. Supposer
tu commences par ce tableau :

bar
=== ===
+1 (3)XNUMX XNUMX
+2 (4)XNUMX XNUMX

Après avoir pivoté, le tableau ressemblera à ceci :

nom ensemble0 ensemble1
==== ==== ====
toto 1 2
mesure 3 4

Pour obtenir des résultats raisonnables, vous devrez peut-être regrouper et pivoter. innotop actuellement
fait cela pour le mode "S: Variables & Status".

DES COULEURS
Par défaut, innotop met en évidence les lignes avec une couleur afin que vous puissiez voir en un coup d'œil quelles lignes sont
plus important. Vous pouvez personnaliser les règles de colorisation et ajouter les vôtres à n'importe quelle table.
Ouvrez l'éditeur de table avec la touche '^', choisissez une table si besoin et appuyez sur 'o' pour l'ouvrir
la boîte de dialogue de l'éditeur de couleurs.

La boîte de dialogue de l'éditeur de couleurs affiche les règles appliquées à la table, dans l'ordre où elles sont
évalué. Chaque ligne est évaluée par rapport à chaque règle pour voir si la règle correspond à la ligne ; si
c'est le cas, la ligne obtient la couleur spécifiée et aucune autre règle n'est évaluée. Les règles
ressemble à ce qui suit :

état eq Verrouillé noir on_red
cmd eq Sommeil blanc
utilisateur système eq utilisateur blanc
cmd eq Connect blanc
cmd eq Binlog Dump blanc
temps > 600 rouge
temps > 120 jaune
temps > 60 vert
temps > 30 cyan

Il s'agit de l'ensemble de règles par défaut pour la table « processlist ». Par ordre de priorité, ces
les règles rendent les requêtes verrouillées noires sur fond rouge, les connexions « grisées » de
la réplication et les requêtes en veille, et faire passer les requêtes du cyan au rouge au fur et à mesure de leur exécution
plus long.

(Pour une raison quelconque, le code de couleur ANSI "blanc" est en fait un gris clair. Votre terminal est
l'affichage peut varier ; expérimenter pour trouver les couleurs que vous aimez).

Vous pouvez utiliser des touches pour déplacer les règles vers le haut et vers le bas, ce qui réorganise leur priorité. Vous
peut également supprimer des règles et en ajouter de nouvelles. Si vous ajoutez une nouvelle règle, innotop vous demande
la colonne, un opérateur pour la comparaison, une valeur à laquelle comparer la colonne,
et une couleur à attribuer si la règle correspond. Il y a une saisie semi-automatique et une invite à chaque
étape.

La valeur de la troisième étape doit être correctement indiquée. innotop n'essaie pas de citer
la valeur car il ne sait pas s'il doit traiter la valeur comme une chaîne ou un
numéro. Si vous voulez comparer la colonne à une chaîne, comme par exemple dans le premier
règle ci-dessus, vous devez entrer « Verrouillé » entouré de guillemets. Si vous obtenez un message d'erreur
à propos d'un mot nu, vous auriez probablement dû citer quelque chose.

EXPRESSIONS
Les expressions sont au cœur du fonctionnement d'innotop et vous permettent d'étendre
innotop comme vous le souhaitez. Rappelez-vous le cycle de vie de la table expliqué dans "TABLES". Les expressions sont
utilisé dans la première étape, où il extrait les valeurs d'une source de données pour former des lignes.

Il le fait en appelant un sous-programme pour chaque colonne, en lui passant l'ensemble de données source, un
ensemble de valeurs actuelles et un ensemble de valeurs précédentes. Tout cela est nécessaire pour que le
le sous-programme peut calculer des choses comme la différence entre cette coche et la précédente
cocher.

Les sous-programmes qui extraient les données de l'ensemble sont compilés à partir d'expressions. Cette
donne beaucoup plus de pouvoir que de simplement nommer les valeurs pour remplir les colonnes, car il
permet de calculer la valeur de la colonne à partir de toutes les données nécessaires, mais évite le
besoin d'écrire du code Perl compliqué et long.

innotop commence par une chaîne de texte qui peut sembler aussi simple qu'un nom de valeur ou comme
compliqué comme une expression Perl à part entière. Il examine chaque jeton « mots nus » dans le
string et décide si elle est censée être une clé dans le hachage $set. Un mot nu est un
valeur sans guillemets qui n'est pas déjà entourée de choses codées comme des signes dollar ou des boucles
supports. Si innotop décide que le mot nu n'est pas une fonction ou un autre code Perl valide,
il le convertit en un accès de hachage. Une fois la chaîne entière traitée, innotop compile
un sous-programme, comme celui-ci :

sous-calcul_column_value {
mon ( $set, $cur, $pre ) = @_;
my $val = # CHAÎNE ÉLARGIE VA ICI
return $ val;
}

Voici un exemple concret, tiré de la table d'en-tête "q_header" en mode "Q: Query List".
Cette expression calcule les valeurs de la colonne qps, ou requêtes par seconde, à partir du
valeurs renvoyées par SHOW STATUS :

Questions/Uptime_embauches

innotop décide que les deux mots sont des mots nus et transforme cette expression en
code Perl suivant :

$set->{Questions}/$set->{Uptime_hires}

Lorsqu'il est entouré par le reste du code du sous-programme, c'est un exécutable Perl qui
calcule une valeur de requêtes par seconde haute résolution.

Les arguments de la sous-routine sont nommés $set, $cur et $pre. Dans la plupart des cas, $set et
$cur seront les mêmes valeurs. Cependant, si "status_inc" est défini, $cur ne sera pas le même
comme $set, car $set contiendra déjà des valeurs qui sont la différence incrémentielle
entre $cur et $pre.

Chaque colonne dans innotop est calculée par des sous-programmes compilés de la même manière. Il y a
aucune différence entre les colonnes intégrées d'innotop et les colonnes définies par l'utilisateur. Cela garde
choses cohérentes et prévisibles.

TRANSFORMATION
Les transformations changent la façon dont une valeur est rendue. Par exemple, ils peuvent prendre un certain nombre de
secondes et l'afficher au format H:M:S. Les transformations suivantes sont définies :

s'engager
Ajoute des virgules aux grands nombres toutes les trois décimales.

dulint_to_int
Accepte deux entiers non signés et les convertit en un seul longlong. C'est
utile pour certaines opérations avec InnoDB, qui utilise deux entiers comme transaction
identifiants, par exemple.

no_ctrl_char
Supprime les caractères de contrôle entre guillemets de la valeur. Ceci est affecté par le "charset"
variable de configuration.

Cette transformation ne fonctionne que dans les chaînes entre guillemets, par exemple, les valeurs d'un SET
clause dans une instruction UPDATE. Cela ne modifiera pas l'instruction UPDATE, mais
réduisez la chaîne entre guillemets en [BINARY] ou [TEXT], selon le jeu de caractères.

pour cent
Convertit un nombre en pourcentage en le multipliant par deux, en le formatant avec
"num_digits" chiffres après la virgule décimale, et éventuellement en ajoutant un signe de pourcentage (voir
"afficher_pourcentage").

secs_to_time
Formate un nombre de secondes sous forme d'heure au format jours+heures:minutes:secondes.

set_precision
Formate les nombres avec le nombre de chiffres "num_digits" après la virgule.

raccourcir
Formate un nombre en tant qu'unité de 1024 (k/M/G/T) et avec le nombre de chiffres "num_digits"
après la virgule.

TABLE EDITEUR
L'éditeur de tableaux innotop vous permet de personnaliser les tableaux à l'aide de touches. Vous commencez la table
éditeur avec la touche '^'. S'il y a plus d'un tableau à l'écran, il vous demandera
d'en choisir un. Une fois que vous l'avez fait, innotop vous montrera quelque chose comme ceci :

Modification de la définition de la table pour le pool de tampons. Presse ? pour obtenir de l'aide, q arrêter.

nom hdr étiquette src
cxn CXN Connexion à partir de laquelle cxn
buf_pool_size Taille Taille du pool de mémoire tampon IB_bp_buf_poo
buf_free Bufs gratuits Buffers libres dans le b IB_bp_buf_fre
pages_total Pages Total de pages IB_bp_pages_t
pages_modified Dirty Pages Pages modifiées (dirty IB_bp_pages_m
buf_pool_hit_rate Taux de réussite Taux de réussite du pool de tampons IB_bp_buf_poo
total_mem_alloc Mémoire Allouer la mémoire totale IB_bp_total_m
add_pool_alloc Add'l Pool Allocation de pool supplémentaire IB_bp_add_poo

La première ligne indique le tableau que vous modifiez et vous rappelle à nouveau d'appuyer sur '?' pour un
liste des mappages de touches. Le reste est une représentation tabulaire des colonnes du tableau,
car c'est probablement ce que vous essayez de modifier. Cependant, vous pouvez modifier plus que simplement
les colonnes du tableau ; cet écran peut démarrer l'éditeur de filtre, l'éditeur de règle de couleur, etc.

Chaque ligne de l'écran affiche une seule colonne dans le tableau que vous êtes en train d'éditer, ainsi qu'un
deux de ses propriétés telles que son en-tête et son expression source (voir "EXPRESSIONS").

Les mappages de touches sont de style Vim, comme dans de nombreux autres endroits. Appuyer sur 'j' et 'k' déplace le
mettre en surbrillance vers le haut ou vers le bas. Vous pouvez alors (d)supprimer ou (e)éditer la colonne en surbrillance. Tu peux
également (a) ajouter une colonne au tableau. Cela active simplement l'une des colonnes déjà
défini pour la table ; il vous invite à choisir parmi les colonnes disponibles mais pas
actuellement affiché. Enfin, vous pouvez réorganiser les colonnes avec les touches '+' et '-'.

Vous pouvez faire plus que simplement éditer les colonnes avec l'éditeur de table, vous pouvez également éditer d'autres
propriétés, telles que l'expression de tri et l'expression de regroupement de la table. Presse '?' voir
la liste complète, bien sûr.

Si vous voulez vraiment personnaliser et créer votre propre colonne, au lieu de simplement activer
un intégré qui n'est pas actuellement affiché, appuyez sur la (nouvelle) touche et innotop
vous demander les informations dont il a besoin :

· Le nom de la colonne : il doit s'agir d'un mot sans caractères amusants, par exemple
lettres, chiffres et caractères de soulignement.

· L'en-tête de colonne : c'est le libellé qui apparaît en haut de la colonne, dans le
en-tête de tableau. Cela peut avoir des espaces et des personnages amusants, mais attention à ne pas faire
il est trop large et gaspille de l'espace à l'écran.

· La source de données de la colonne : c'est une expression qui détermine quelles données du
source (voir "TABLES") innotop mettra dans la colonne. Cela peut être juste le nom de
un élément dans la source, ou il peut s'agir d'une expression plus complexe, comme décrit dans
"EXPRESSIONS".

Une fois que vous avez entré les données requises, votre tableau a une nouvelle colonne. Il n'y a pas
différence entre cette colonne et celles intégrées; il peut avoir tous les mêmes propriétés
et les comportements. innotop écrira la définition de la colonne dans le fichier de configuration, donc
il persistera d'une session à l'autre.

Voici un exemple : supposons que vous vouliez savoir combien de fois vos esclaves ont réessayé
transactions. Selon le manuel MySQL, le statut Slave_retried_transactions
variable vous donne ces données : "Le nombre total de fois depuis le démarrage que le
Le thread SQL de l'esclave de réplication a tenté de nouvelles transactions. Cette variable a été ajoutée dans la version
5.0.4." Ceci est approprié à ajouter à la table "slave_sql_status".

Pour ajouter la colonne, passez en mode de surveillance de réplication avec la touche 'M' et appuyez sur
la touche '^' pour lancer l'éditeur de table. Lorsque vous y êtes invité, choisissez slave_sql_status comme
table, puis appuyez sur 'n' pour créer la colonne. Tapez « retries » comme nom de colonne, « Retries »
comme en-tête de colonne et 'Slave_retried_transactions' comme source. Maintenant, la colonne est
créé, et vous voyez à nouveau l'écran de l'éditeur de table. Appuyez sur 'q' pour quitter l'éditeur de table,
et vous verrez votre colonne à la fin du tableau.

VARIABLE PARURES


Les jeux de variables sont utilisés en mode « S : Variables & Status » pour définir plus facilement ce
variables que vous souhaitez surveiller. Dans les coulisses, ils sont compilés dans une liste de
expressions, puis dans une liste de colonnes afin qu'elles puissent être traitées comme des colonnes dans n'importe quel
autre table, en termes d'extraction de données et de transformations. Cependant, vous êtes protégé
des détails fastidieux par une syntaxe qui devrait vous sembler très naturelle : un SQL SELECT
liste.

La source de données pour les ensembles variables, et en fait l'ensemble du mode S, est la combinaison de
SHOW STATUS, SHOW VARIABLES et SHOW INNODB STATUS. Imaginez que vous ayez une immense table
avec une colonne par variable renvoyée par ces instructions. C'est la source de données pour
ensembles variables. Vous pouvez maintenant interroger cette source de données comme vous le souhaitez. Par example:

Questions, disponibilité, questions/temps de disponibilité en tant que QPS

Dans les coulisses, innotop divisera cet ensemble de variables en trois expressions, compilera
les et les transformer en une définition de table, puis extraire comme d'habitude. Cela devient un
« jeu de variables » ou une « liste de variables que vous souhaitez surveiller ».

innotop vous permet de nommer et d'enregistrer vos ensembles de variables, et les écrit dans la configuration
déposer. Vous pouvez choisir le jeu de variables que vous voulez voir avec la touche 'c', ou activer le
ensembles suivant et précédent avec les touches '>' et '<'. Il existe de nombreux ensembles de variables intégrés
aussi, ce qui devrait vous donner un bon début pour créer le vôtre. Appuyez sur « e » pour modifier le
ensemble de variables actuel, ou juste pour voir comment il est défini. Pour en créer un nouveau, appuyez simplement sur
'c' et tapez son nom.

Vous pouvez utiliser certaines des fonctions répertoriées dans "TRANSFORMATIONS" pour vous aider à formater le
résultats. En particulier, "set_precision" est souvent utile pour limiter le nombre de chiffres que vous
voir. En prolongeant l'exemple ci-dessus, voici comment :

Questions, disponibilité, set_precision (Questions/temps de disponibilité) en tant que QPS

En fait, cela nécessite encore un peu de travail. Si votre "intervalle" est inférieur à un
deuxièmement, vous pourriez diviser par zéro car la disponibilité est incrémentielle dans ce mode de
défaut. À la place, utilisez Uptime_hires :

Questions, disponibilité, set_precision (Questions/Uptime_hires) en tant que QPS

Cet exemple est simple, mais il montre à quel point il est facile de choisir les variables que vous souhaitez
moniteur.

PLUGINS


innotop a un mécanisme de plugin simple mais puissant par lequel vous pouvez étendre ou modifier son
fonctionnalité existante et ajouter de nouvelles fonctionnalités. La fonctionnalité de plugin d'innotop est
basé sur les événements : les plugins s'enregistrent pour être appelés lorsque des événements se produisent. Ils ont alors
une chance d'influencer l'événement.

Un plugin innotop est un module Perl placé dans le répertoire "plugin_dir" d'innotop. Sous UNIX
systèmes, vous pouvez placer un lien symbolique vers le module au lieu de mettre le fichier réel
là. innotop découvre automatiquement le fichier. S'il y a une entrée correspondante dans
la section du fichier de configuration "plugins", innotop charge et active le plugin.

Le module doit être conforme à l'interface du plugin d'innotop. De plus, le code source de
le module doit être écrit de telle manière qu'innotop puisse inspecter le fichier et déterminer
le nom et la description du package.

Emballage Papier Identifier Convention
innotop inspecte la source du module de plugin pour déterminer le nom du package Perl. ça a l'air
pour une ligne de la forme « paquet Foo ; » et s'il est trouvé, considère le nom du package du plugin comme
être Foo. Bien sûr, le nom du package peut être un nom de package Perl valide, avec double
points-virgules et ainsi de suite.

Il recherche également une description dans le code source, pour rendre l'éditeur de plugin plus humain.
amical. La description est une ligne de commentaire de la forme "# description : Foo", où "Foo"
est le texte qu'innotop considérera comme la description du plugin.

Brancher Interfaces
L'interface du plugin innotop est assez simple : innotop s'attend à ce que le plugin soit un objet-
module orienté sur lequel il peut appeler certaines méthodes. Les méthodes sont

nouveau (% variables)
C'est le constructeur du plugin. Il est passé un hachage des variables d'innotop, qui
il peut manipuler (voir "Variables de plug-in"). Il doit renvoyer une référence au nouveau
objet plugin créé.

Au moment de la construction, innotop n'a chargé que la configuration générale et créé
les variables intégrées par défaut avec leur contenu par défaut (ce qui est beaucoup).
Par conséquent, l'état du programme est exactement comme dans le code source d'innotop, plus le
variables de configuration de la section "général" du fichier de configuration.

Si votre plugin manipule les variables, il modifie les données globales, qui sont partagées
par innotop et tous les plugins. Les plugins sont chargés dans l'ordre dans lequel ils sont répertoriés dans le
fichier de configuration. Votre plugin peut se charger avant ou après un autre plugin, il y a donc un
potentiel de conflit ou d'interaction entre les plugins s'ils modifient des données autres
les plugins utilisent ou modifient.

s'inscrire_pour_events()
Cette méthode doit retourner une liste d'événements auxquels le plugin est intéressé, le cas échéant.
Voir « Événements de plug-in » pour les événements définis. Si le plugin renvoie un événement qui n'est pas
défini, l'événement est ignoré.

gestionnaires d'événements
Le plugin doit implémenter une méthode nommée de la même manière que chaque événement pour lequel il a
inscrit. En d'autres termes, si le plugin renvoie qw(foo bar) de
s'inscrire_pour_events(), il doit avoir truc() et bar() méthodes. Ces méthodes sont
rappels pour les événements. Voir « Événements de plug-in » pour plus de détails sur chaque événement.

Brancher Variables
Le constructeur du plugin reçoit un hachage des variables d'innotop, qu'il peut manipuler.
C'est probablement une bonne idée si l'objet plugin en enregistre une copie pour une utilisation ultérieure. le
Les variables sont définies dans la variable innotop %pluggable_vars et sont les suivantes :

action_pour
Un hashref de mappages de touches. Ce sont les raccourcis clavier globaux d'innotop.

agg_funcs
Un hashref de fonctions pouvant être utilisé pour le regroupement. Voir "GROUPAGE".

config
Le hachage de configuration globale.

liens
Un hashref des spécifications de connexion. Ce ne sont que des spécifications sur la façon de
se connecter à un serveur.

dhp
Un hashref des connexions à la base de données d'innotop. Il s'agit d'objets de connexion DBI réels.

filtres
Un hashref de filtres appliqués aux lignes du tableau. Voir "FILTRES" pour plus d'informations.

modes
Un hashref de modes. Voir "MODES" pour plus d'informations.

groupes_serveurs
Un hashref de groupes de serveurs. Voir "GROUPES DE SERVEURS".

tbl_meta
Un hashref des métadonnées de table d'innotop, avec une entrée par table (voir "TABLES" pour
Plus d'information).

trans_funcs
Un hashref de fonctions de transformation. Voir " TRANSFORMATION ".

jeux_var
Un hashref d'ensembles de variables. Voir "ENSEMBLES DE VARIABLES".

Brancher Événements
Chaque événement est défini quelque part dans le code source d'innotop. Quand innotop exécute ce code,
il exécute la fonction de rappel pour chaque plugin qui a exprimé son intérêt pour le
un événement. innotop transmet des données pour chaque événement. Les événements sont définis dans le
%event_listener_for variable, et sont les suivantes :

extract_values($set, $cur, $pre, $tbl)
Cet événement se produit à l'intérieur de la fonction qui extrait les valeurs d'une source de données. le
les arguments sont l'ensemble de valeurs, les valeurs actuelles, les valeurs précédentes et le
nom de la table.

set_to_tbl
Les événements sont définis à de nombreux endroits dans ce sous-programme, qui est chargé de transformer
un arrayref de hashrefs dans un arrayref de lignes pouvant être imprimées à l'écran.
Les événements transmettent tous les mêmes données : un arrayref de lignes et le nom de la table en cours
établi. Les événements sont set_to_tbl_pre_filter,
set_to_tbl_pre_sort, set_to_tbl_pre_group, set_to_tbl_pre_colorize,
set_to_tbl_pre_transform, set_to_tbl_pre_pivot, set_to_tbl_pre_create,
set_to_tbl_post_create.

draw_screen ($ lignes)
Cet événement se produit à l'intérieur du sous-programme qui imprime les lignes à l'écran. $lignes
est un arrayref de chaînes.

étapes Brancher Exemple
La façon la plus simple d'expliquer la fonctionnalité du plugin est probablement avec un exemple simple.
Le module suivant ajoute une colonne au début de chaque tableau et définit sa valeur sur
1.

utiliser strict;
utiliser les avertissements FATAL => 'tous';

package Innotop::Plugin::Exemple;
# description : ajoute une colonne « exemple » à chaque table

sous nouveau {
ma ( $class, %vars ) = @_;
# Stocke la référence aux variables d'innotop dans $self
mon $self = bless { %vars }, $class;

# Concevoir l'exemple de colonne
mon $col = {
hdr => 'Exemple',
juste => '',
déc => 0,
nombre => 1,
label => 'Exemple',
src => 'exemple', # Récupère les données de cette colonne dans la source de données
tbl => '',
trans => [],
};

# Ajoutez la colonne à chaque table.
mon $tbl_meta = $vars{tbl_meta} ;
foreach my $tbl ( valeurs %$tbl_meta ) {
# Ajouter la colonne à la liste des colonnes définies
$tbl->{cols}->{exemple} = $col;
# Ajouter la colonne à la liste des colonnes visibles
unshift @{$tbl->{visible}}, 'exemple' ;
}

# Assurez-vous de renvoyer une référence à l'objet.
renvoie $self ;
}

# J'aimerais être appelé lorsqu'un ensemble de données est rendu dans une table, s'il vous plaît.
sous registre_pour_événements {
mon ( $self ) = @_;
retourner qw(set_to_tbl_pre_filter);
}

# Cette méthode sera appelée lorsque l'événement se déclenchera.
sous set_to_tbl_pre_filter {
mon ( $self, $rows, $tbl ) = @_;
# Définissez la source de données de l'exemple de colonne sur la valeur 1.
foreach ma $ligne ( @$lignes ) {
$ligne->{exemple} = 1 ;
}
}

1;

Brancher Éditeur
L'éditeur de plugin vous permet de visualiser les plugins innotop découverts et d'activer ou de désactiver
eux. Démarrez l'éditeur en appuyant sur $ pour démarrer l'éditeur de configuration à partir de n'importe quel mode.
Appuyez sur la touche 'p' pour lancer l'éditeur de plugin. Vous verrez une liste de plugins innotop
découvert. Vous pouvez utiliser les touches 'j' et 'k' pour déplacer la surbrillance sur celle souhaitée,
puis appuyez sur la touche * pour l'activer ou le désactiver. Quittez l'éditeur et redémarrez innotop
pour que les changements prennent effet.

SQL ÉTATS


innotop utilise un ensemble limité d'instructions SQL pour récupérer les données de MySQL à afficher. le
les instructions sont personnalisées en fonction de la version du serveur sur laquelle elles sont exécutées ;
par exemple, sur MySQL 5 et plus récent, INNODB_STATUS exécute "SHOW ENGINE INNODB STATUS",
tandis que sur les versions antérieures, il exécute "SHOW INNODB STATUS". Les déclarations sont comme
suit:

Instruction SQL exécutée
=================== ================================
INNODB_STATUS AFFICHER [MOTEUR] STATUT INNODB
KILL_CONNECTION TUER
KILL_QUERY TUER LA REQUÊTE
OPEN_TABLES AFFICHER LES TABLES OUVERTES
LISTE DE PROCESSUS AFFICHER LA LISTE DE PROCESSUS COMPLÈTE
SHOW_MASTER_LOGS AFFICHER LES JOURNAUX MAÎTRES
SHOW_MASTER_STATUS AFFICHER L'ÉTAT MAÎTRE
SHOW_SLAVE_STATUS AFFICHER LE STATUT DE L'ESCLAVE
SHOW_STATUS AFFICHER LE STATUT [GLOBAL]
SHOW_VARIABLES AFFICHER LES VARIABLES [GLOBALES]

DONNEES SOURCES


Chaque fois qu'innotop extrait des valeurs pour créer une table (voir "EXPRESSIONS" et "TABLES"), il
le fait à partir d'une source de données particulière. En grande partie à cause des données complexes extraites de
AFFICHER LE STATUT INNODB, c'est un peu brouillon. SHOW INNODB STATUS contient un mélange de
des valeurs uniques et des valeurs répétées qui forment des ensembles de données imbriqués.

Chaque fois qu'innotop récupère des données depuis MySQL, il ajoute deux bits supplémentaires à chaque ensemble : cxn et
Uptime_hires. cxn est le nom de la connexion d'où proviennent les données. Uptime_hires
est une version haute résolution de la variable d'état de disponibilité du serveur, ce qui est important si
votre paramètre "intervalle" est inférieur à la seconde.

Voici les types de sources de données à partir desquelles les données sont extraites :

STATUS_VARIABLES
Il s'agit de la catégorie la plus large, dans laquelle se trouvent la plupart des types de données. Cela commence par
la combinaison de SHOW STATUS et SHOW VARIABLES, mais d'autres sources peuvent être incluses
selon les besoins, par exemple, AFFICHER STATUT MAÎTRE et STATUT ESCLAVE, ainsi que de nombreux
les valeurs non répétées de SHOW INNODB STATUS.

DEADLOCK_LOCKS
Ces données sont extraites de la liste des transactions dans le DERNIER DEADLOCK DETECTE
section de SHOW INNODB STATUS. Il est imbriqué à deux niveaux : les transactions, puis
serrures.

DEADLOCK_TRANSACTIONS
Ces données proviennent de la liste des transactions dans la section DERNIER ARRÊT DÉTECTÉ de SHOW
STATUT INNODB. Il est niché sur un niveau de profondeur.

EXPLIQUE
Ces données proviennent du jeu de résultats renvoyé par EXPLAIN.

INNODB_TRANSACTIONS
Ces données proviennent de la section TRANSACTIONS de SHOW INNODB STATUS.

IO_THREADS
Ces données proviennent de la liste des threads de la section FILE I/O de SHOW INNODB
STATUT.

INNODB_LOCKS
Ces données proviennent de la section TRANSACTIONS de SHOW INNODB STATUS et sont imbriquées deux
niveaux de profondeur.

OPEN_TABLES
Ces données proviennent de SHOW OPEN TABLES.

LISTE DES PROCESSUS
Ces données proviennent de SHOW FULL PROCESSLIST.

OS_WAIT_ARRAY
Ces données proviennent de la section SEMAPHORES de SHOW INNODB STATUS et sont imbriquées à un niveau
Profond. Cela vient des lignes qui ressemblent à ceci:

--Le fil 1568861104 a attendu à la ligne 0 de btr424cur.c ....

MYSQL PRIVILÈGES


· Vous devez vous connecter à MySQL en tant qu'utilisateur disposant du privilège SUPER pour la plupart des
fonctions.

· Si vous n'avez pas le privilège SUPER, vous pouvez toujours exécuter certaines fonctions, mais vous ne
nécessairement voir toutes les mêmes données.

· Vous avez besoin du privilège PROCESS pour voir la liste des requêtes en cours d'exécution en mode Q.

· Vous avez besoin de privilèges spéciaux pour démarrer et arrêter les serveurs esclaves.

· Vous avez besoin des privilèges appropriés pour créer et supprimer les tables de blocage si nécessaire (voir
"CONNEXIONS SERVEUR").

SYSTÈME CONDITIONS REQUISES


Vous avez bien sûr besoin de Perl pour exécuter innotop. Vous avez également besoin de quelques modules Perl : DBI,
DBD::mysql, Term::ReadKey et Time::HiRes. Ceux-ci devraient être inclus avec la plupart des Perl
distributions, mais dans le cas contraire, je recommande d'utiliser des versions distribuées avec votre
système d'exploitation ou de la distribution Perl, pas de CPAN. Term::ReadKey en particulier a
connu pour causer des problèmes s'il est installé à partir de CPAN.

Si vous avez Term::ANSIColor, innotop l'utilisera pour formater les en-têtes de manière plus lisible et
de manière compacte. (Sous Microsoft Windows, vous avez également besoin de Win32::Console::ANSI pour le terminal
codes de formatage à respecter). Si vous installez Term::ReadLine, de préférence
Term::ReadLine::Gnu, vous bénéficierez d'une bonne prise en charge de l'auto-complétion.

Je lance innotop sur Gentoo GNU/Linux, Debian et Ubuntu, et j'ai eu des retours de personnes
l'exécuter avec succès sur Red Hat, CentOS, Solaris et Mac OSX. je ne vois aucune raison
pourquoi cela ne fonctionnera pas sur d'autres systèmes d'exploitation UNIX, mais je n'en suis pas sûr. Ça aussi
fonctionne sous Windows sous ActivePerl sans problème.

innotop a été utilisé sur les versions MySQL 3.23.58, 4.0.27, 4.1.0, 4.1.22, 5.0.26, 5.1.15,
et 5.2.3. S'il ne fonctionne pas correctement pour vous, c'est un bogue qui doit être signalé.

Utilisez innotop en ligne en utilisant les services onworks.net


Serveurs et postes de travail gratuits

Télécharger des applications Windows et Linux

Commandes Linux

Ad