EnglischFranzösischSpanisch

Ad


OnWorks-Favicon

innotop – Online in der Cloud

Führen Sie innotop im kostenlosen Hosting-Anbieter OnWorks über Ubuntu Online, Fedora Online, den Windows-Online-Emulator oder den MAC OS-Online-Emulator aus

Dies ist der Befehl innotop, der beim kostenlosen Hosting-Anbieter OnWorks über eine unserer zahlreichen kostenlosen Online-Workstations wie Ubuntu Online, Fedora Online, den Windows-Online-Emulator oder den MAC OS-Online-Emulator ausgeführt werden kann

PROGRAMM:

NAME/FUNKTION


innotop – MySQL- und InnoDB-Transaktions-/Statusmonitor.

ZUSAMMENFASSUNG


So überwachen Sie Server normal:

innotop

So überwachen Sie InnoDB-Statusinformationen aus einer Datei:

innotop /var/log/mysql/mysqld.err

So führen Sie innotop nicht interaktiv in einer Pipe-and-Filter-Konfiguration aus:

innotop --count 5 -d 1 -n

So überwachen Sie eine Datenbank auf einem anderen System mit einem bestimmten Benutzernamen und Passwort:

innotop -u -P -H

BESCHREIBUNG


innotop überwacht MySQL-Server. Jeder seiner Modi zeigt Ihnen einen anderen Aspekt dessen, was ist
geschieht auf dem Server. Es gibt beispielsweise einen Modus zur Überwachung der Replikation, einen für
Abfragen und eine für Transaktionen. innotop aktualisiert seine Daten regelmäßig, sodass Sie eine sehen können
Ansicht aktualisieren.

innotop bietet viele Funktionen für Power-User, Sie können es aber auch virtuell starten und ausführen
keine Konfiguration. Wenn Sie gerade erst anfangen, lesen Sie „QUICK-START“. Drücken Sie '?' überhaupt
Zeit beim Ausführen von innotop für kontextsensitive Hilfe.

SCHNELLSTART


Um innotop zu starten, öffnen Sie ein Terminal oder eine Eingabeaufforderung. Wenn Sie innotop auf installiert haben
Ihr System, Sie sollten in der Lage sein, einfach „innotop“ einzugeben und die Eingabetaste zu drücken; sonst du
Sie müssen in das Verzeichnis von innotop wechseln und „perl innotop“ eingeben.

Wenn keine Optionen angegeben sind, versucht innotop, eine Verbindung zu einem MySQL-Server auf localhost herzustellen
Verwendung von mysql_read_default_group=client für andere Verbindungsparameter. Wenn du musst
Geben Sie einen anderen Benutzernamen und ein anderes Passwort an und verwenden Sie die Optionen -u bzw. -p. Zu
Um eine MySQL-Datenbank auf einem anderen Host zu überwachen, verwenden Sie die Option -h.

Nachdem Sie die Verbindung hergestellt haben, sollte innotop Ihnen etwa Folgendes anzeigen:

[RO] Abfrageliste (? für Hilfe) localhost, 01:11:19, 449.44 QPS, 14 con/run

CXN beim Laden von QPS langsam QCacheHit KCacheHit BpsIn BpsOut
localhost Gesamt 0.00 1.07k 697 0.00% 98.17% 476.83k 242.83k

CXN-Befehls-ID-Benutzer-Host-DB-Zeitabfrage
localhost-Abfrage 766446598 test 10.0.0.1 foo 00:02 INSERT INTO table (

(Dieses Beispiel ist rechts abgeschnitten, sodass es auf ein Terminal passt, wenn „man“ ausgeführt wird
innotop‘)

Wenn Ihr Server ausgelastet ist, wird mehr Ausgabe angezeigt. Beachten Sie die erste Zeile auf dem Bildschirm:
Das sagt Ihnen, dass readonly auf true ([RO]) gesetzt ist, in welchem ​​Modus Sie sich befinden und auf welchem ​​Server
mit dem du verbunden bist. Sie können per Tastendruck in andere Modi wechseln; Drücken Sie „T“, um zu wechseln
zum Beispiel auf eine Liste von InnoDB-Transaktionen.

Drücken Sie das „?“ Drücken Sie die Taste, um zu sehen, welche Tasten im aktuellen Modus aktiv sind. Sie können eine beliebige Taste drücken
Drücken Sie diese Tasten und innotop führt entweder die gewünschte Aktion aus oder fordert Sie zu weiteren Eingaben auf.
Wenn Ihr System Term::ReadLine-Unterstützung bietet, können Sie TAB und andere Tasten zur automatischen Vervollständigung verwenden
und Eingaben bearbeiten.

Um innotop zu beenden, drücken Sie die Taste „q“.

OPTIONAL


innotop wird größtenteils über seine Konfigurationsdatei konfiguriert, einige jedoch auch über die Konfiguration
Optionen können über die Befehlszeile erfolgen. Sie können auch eine Datei angeben, die für InnoDB überwacht werden soll
Statusausgabe; Weitere Einzelheiten finden Sie unter „ÜBERWACHUNG EINER DATEI“.

Sie können einige Optionen negieren, indem Sie dem Optionsnamen das Präfix --no voranstellen. Beispiel: --noinc
(oder --no-inc) negiert „--inc“.

--color
Aktivieren oder deaktivieren Sie die Terminalfärbung. Entspricht der Konfigurationsdateieinstellung „Farbe“.

--config
Gibt eine zu lesende Konfigurationsdatei an. Das heißt, diese Option ist nicht klebrig
bleibt nicht in der Konfigurationsdatei selbst bestehen.

--zählen
Aktualisieren Sie vor dem Beenden nur die angegebene Anzahl von Malen (Ticks). Jede Aktualisierung ist eine
Pause für „Intervall“-Sekunden, gefolgt vom Anfordern von Daten von MySQL-Verbindungen und
Drucken Sie es auf dem Terminal aus.

--verzögern
Gibt die Zeitspanne an, die zwischen Ticks (Aktualisierungen) pausiert werden soll. Entspricht dem
Konfigurationsoption „Intervall“.

--help
Drucken Sie eine Zusammenfassung der Befehlszeilennutzung und des Beendens.

--Gastgeber
Host, zu dem eine Verbindung hergestellt werden soll.

--inc
Legt fest, ob innotop absolute Zahlen oder relative Zahlen (Offsets) anzeigen soll
von ihren vorherigen Werten). Entspricht der Konfigurationsoption „status_inc“.

--Modus
Gibt den Modus an, in dem innotop starten soll. Entspricht der Konfiguration
Option „Modus“.

--nonint
Aktivieren Sie den nicht interaktiven Betrieb. Weitere Informationen finden Sie unter „NICHT INTERAKTIVER BETRIEB“.

--Passwort
Passwort für die Verbindung.

--Hafen
Port, der für die Verbindung verwendet werden soll.

--skipcentral
Lesen Sie nicht die zentrale Konfigurationsdatei.

--Benutzer
Benutzer, der für die Verbindung verwendet werden soll.

--Version
Versionsinformationen ausgeben und beenden.

--schreiben
Setzt die Konfigurationsoption „readonly“ auf 0, wodurch innotop das Laufende schreibt
Konfiguration zu ~/.innotop/innotop.conf beim Beenden, wenn keine Konfigurationsdatei geladen wurde
am Anfang.

HOTKEYS


innotop ist interaktiv und kann per Tastendruck gesteuert werden.

· Großbuchstabentasten wechseln zwischen den Modi.

· Kleinbuchstaben-Tasten lösen im aktuellen Modus eine Aktion aus.

· Andere Schlüssel bewirken etwas Besonderes, z. B. das Ändern der Konfiguration oder das Anzeigen der Innotop-Lizenz.

Drücken Sie '?' Sie können jederzeit die aktuell aktiven Tasten und deren Funktion sehen.

MODI


Jeder Modus von innotop ruft einen bestimmten Datentyp von den Servern ab und zeigt ihn an
Du überwachst. Sie wechseln zwischen den Modi mit Großbuchstabentasten. Das Folgende ist ein
Kurze Beschreibung jedes Modus in alphabetischer Reihenfolge. Um in den Modus zu wechseln, drücken Sie die Taste
Schlüssel, der in der folgenden Liste vor seiner Überschrift aufgeführt ist:

B: InnoDB-Puffer
In diesem Modus werden Informationen zum InnoDB-Pufferpool, zur Seitenstatistik und zum Einfügen angezeigt
Puffer und adaptiver Hash-Index. Die Daten stammen von SHOW INNODB STATUS.

Dieser Modus enthält „buffer_pool“, „page_statistics“, „insert_buffers“ und
„adaptive_hash_index“-Tabellen standardmäßig.

C: Befehlszusammenfassung
Dieser Modus ähnelt dem Befehlszusammenfassungsmodus von mytop. Es zeigt die „cmd_summary“
Tabelle, die etwa wie folgt aussieht:

Befehlszusammenfassung (? für Hilfe) localhost, 25+07:16:43, 2.45 QPS, 3 thd, 5.0.40
_____________________ Befehlszusammenfassung _____________________
Name Wert Pct Letzter 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 %

Die Befehlsübersichtstabelle wird durch Extrahieren von Variablen aus „STATUS_VARIABLES“ erstellt.
Die Variablen müssen numerisch sein und mit dem durch „cmd_filter“ angegebenen Präfix übereinstimmen.
Konfigurationsvariable. Anschließend werden die Variablen absteigend nach Wert sortiert
im Vergleich zur letzten Variablen, wie oben gezeigt. Die Prozentspalten sind Prozentsätze
der Summe aller Variablen in der Tabelle, sodass Sie das relative Gewicht der Variablen sehen können
Variablen.

Das Beispiel zeigt, was Sie sehen, wenn das Präfix „Select_“ ist. Das Standardpräfix ist
„Com_“. Mit der Taste „s“ können Sie ein Präfix auswählen.

Es ist eher so, als würde man SHOW VARIABLES LIKE "prefix%" mit Speicher und nett ausführen
Formatierung.

Die Werte werden über alle Server hinweg aggregiert. Die Pct-Spalten sind nicht korrekt
über mehrere Server aggregiert. Dies ist eine bekannte Einschränkung der Gruppierung
Algorithmus, der möglicherweise in Zukunft behoben wird.

D: InnoDB-Deadlocks
In diesem Modus werden die Transaktionen angezeigt, die am letzten InnoDB-Deadlock beteiligt waren. Ein zweiter Tisch
Zeigt die Sperren an, die jede Transaktion hielt und auf die sie wartete. Ein Deadlock wird durch einen Zyklus verursacht
Im Wartediagramm sollten also zwei Sperren gehalten und eine abgewartet werden, es sei denn
Die Deadlock-Informationen werden abgeschnitten.

InnoDB stellt Deadlock-Informationen vor einige andere Informationen in SHOW INNODB
STATUS-Ausgabe. Wenn es viele Sperren gibt, kann die Deadlock-Information stark zunehmen
groß, und die Größe der Ausgabe von SHOW INNODB STATUS ist begrenzt. Ein großer
Ein Deadlock kann die gesamte Ausgabe ausfüllen oder sogar abgeschnitten werden und Sie daran hindern, etwas zu sehen
andere Informationen überhaupt. Wenn Sie innotop in einem anderen Modus ausführen, beispielsweise T
Modus, und plötzlich sehen Sie nichts mehr. Vielleicht möchten Sie überprüfen, ob a
Deadlock hat die von Ihnen benötigten Daten gelöscht.

Wenn dies der Fall ist, können Sie einen kleinen Deadlock erstellen, um den großen zu ersetzen. Benutzen Sie die Taste „w“.
den großen Deadlock mit einem kleinen „auslöschen“. Dies wird nicht funktionieren, es sei denn, Sie haben es getan
eine Deadlock-Tabelle für die Verbindung definiert (siehe „SERVERVERBINDUNGEN“).

Sie können innotop auch so konfigurieren, dass es automatisch erkennt, wann ein großer Deadlock erforderlich ist
durch ein kleines ersetzt werden (siehe „auto_wipe_dl“).

In diesem Modus werden standardmäßig die Tabellen „deadlock_transactions“ und „deadlock_locks“ angezeigt.

F: InnoDB-Fremdschlüsselfehler
In diesem Modus werden die letzten InnoDB-Fremdschlüsselfehlerinformationen angezeigt, z. B. die Tabelle wo
es ist passiert, wann und wer und welche Abfrage hat es verursacht und so weiter.

InnoDB verfügt über eine große Vielfalt an Fremdschlüssel-Fehlermeldungen, und viele davon sind einfach
schwer zu analysieren. innotop leistet hier nicht immer den besten Job, aber es gibt so viel Code
widmet sich der Analyse dieser chaotischen, nicht analysierbaren Ausgabe, die innotop wahrscheinlich nie sein wird
in dieser Hinsicht perfekt. Wenn innotop Ihnen nicht zeigt, was Sie sehen müssen, schauen Sie einfach vorbei
direkt am Statustext.

In diesem Modus wird standardmäßig die Tabelle „fk_error“ angezeigt.

I: InnoDB-E/A-Info
In diesem Modus werden die E/A-Statistiken von InnoDB angezeigt, einschließlich der E/A-Threads, ausstehender E/A und Dateien
E/A-Verschiedenes und Protokollstatistiken. Es zeigt „io_threads“, „pending_io“,
Standardmäßig werden die Tabellen „file_io_misc“ und „log_statistics“ verwendet.

L: Schlösser
In diesem Modus werden Informationen zu aktuellen Sperren angezeigt. Im Moment gibt es nur InnoDB-Sperren
unterstützt, und standardmäßig werden nur Sperren angezeigt, auf die Transaktionen warten.
Diese Informationen stammen aus dem Abschnitt TRANSACTIONS des InnoDB-Statustextes. Wenn
Sie haben einen sehr ausgelasteten Server und müssen möglicherweise häufig auf Sperren warten. es hilft, es zu können
Sehen Sie, welche Tabellen und Indizes der „Hot Spot“ für Sperren sind. Wenn Ihr Server läuft
Ziemlich gut, dieser Modus sollte nichts anzeigen.

Sie können MySQL und innotop so konfigurieren, dass nicht nur Sperren für eine Transaktion überwacht werden
wartet, aber auch die derzeit festgehaltenen. Sie können dies mit der InnoDB-Sperre tun
Überwachen (http://dev.mysql.com/doc/en/innodb-monitor.html>). Es ist nicht dokumentiert
das MySQL-Handbuch, aber auch das Erstellen des Sperrmonitors mit der folgenden Anweisung
wirkt sich auf die Ausgabe von SHOW INNODB STATUS aus, die innotop verwendet:

CREATE TABLE innodb_lock_monitor(a int) ENGINE=INNODB;

Dies führt dazu, dass InnoDB seine Ausgabe etwa alle 16 Sekunden in die MySQL-Datei druckt
im Handbuch angegeben ist, aber auch die normale SHOW INNODB STATUS-Ausgabe enthält
Sperrinformationen, die innotop analysieren und anzeigen kann (das ist das Undokumentierte).
Funktion).

Das bedeutet, dass Sie das tun können, was vielleicht unmöglich schien: in begrenztem Umfang (InnoDB
einige Informationen in der Ausgabe abschneidet), können Sie sehen, welche Transaktion die enthält
sperrt, worauf etwas anderes wartet. Sie können die InnoDB-Sperre auch aktivieren und deaktivieren
Überwachen Sie in diesem Modus mit den Tastenzuordnungen.

In diesem Modus wird standardmäßig die Tabelle „innodb_locks“ angezeigt. Hier ist ein Beispiel des Bildschirms
Wenn eine Verbindung auf Sperren wartet, hält eine andere Verbindung:

_________________________________ InnoDB-Sperren __________________________
CXN-ID-Typ Warten Warten Aktivmodus DB-Tabellenindex
localhost 12 RECORD 1 00:10 00:10 X test t1 PRIMARY
localhost 12 TABELLE 0 00:10 00:10 IX test t1
localhost 12 RECORD 1 00:10 00:10 X test t1 PRIMARY
localhost 11 TABELLE 0 00:00 00:25 IX test t1
localhost 11 RECORD 0 00:00 00:25 X test t1 PRIMARY

Sie können sehen, dass die erste Verbindung, ID 12, auf eine Sperre des PRIMÄR-Schlüssels wartet
test.t1 und wartet seit 10 Sekunden. Die zweite Verbindung wartet nicht,
weil die Wartespalte 0 ist, aber Sperren für denselben Index enthält. Das sagt es dir
Anschluss 11 blockiert Anschluss 12.

M: Master/Slave-Replikationsstatus
In diesem Modus wird die Ausgabe von SHOW SLAVE STATUS und SHOW MASTER STATUS in drei Schritten angezeigt
Tische. Die ersten beiden unterteilen den Status des Slaves in SQL- und E/A-Thread-Status und
Das letzte zeigt den Master-Status. Es werden Filter angewendet, um Nicht-Slave-Server auszuschalten
die Slave-Tabellen und Nicht-Master-Server aus der Master-Tabelle.

In diesem Modus werden „slave_sql_status“, „slave_io_status“ und „master_status“ angezeigt.
Tabellen standardmäßig.

O: Offene Tische
Dieser Abschnitt stammt aus dem MySQL-Befehl SHOW OPEN TABLES. Standardmäßig ist es gefiltert
um Tabellen anzuzeigen, die von einer oder mehreren Abfragen verwendet werden, damit Sie sich einen schnellen Überblick verschaffen können
welche Tische „heiß“ sind. Damit können Sie erraten, welche Tabellen möglicherweise gesperrt sind
implizit.

Dieser Modus zeigt standardmäßig den Modus „open_tables“ an.

F: Abfrageliste
Dieser Modus zeigt die Ausgabe von SHOW FULL PROCESSLIST an, ähnlich wie meine Spitze's Abfrageliste
Modus. Dieser Modus funktioniert nicht InnoDB-bezogene Informationen anzeigen. Dies ist wahrscheinlich einer von
die nützlichsten Modi für den allgemeinen Gebrauch.

Es gibt eine informative Kopfzeile, die allgemeine Statusinformationen zu Ihrem Gerät anzeigt
Server. Sie können es mit der Taste „h“ ein- und ausschalten. Standardmäßig wird innotop ausgeblendet
inaktive Prozesse und ein eigener Prozess. Sie können diese mit dem „i“ ein- und ausschalten.
und „a“-Tasten.

Sie können eine Abfrage in diesem Modus mit der Taste „e“ EXPLAINEN. Dadurch werden die Abfragen angezeigt
Volltext, die Ergebnisse von EXPLAIN und in neueren MySQL-Versionen sogar die optimierten
Abfrage, die aus EXPLAIN EXTENDED resultiert. innotop versucht auch, bestimmte Abfragen neu zu schreiben
um sie ERKLÄRBAR zu machen. Beispielsweise sind INSERT/SELECT-Anweisungen wiederbeschreibbar.

In diesem Modus werden standardmäßig die Tabellen „q_header“ und „processlist“ angezeigt.

R: InnoDB-Zeilenoperationen und Semaphoren
Dieser Modus zeigt InnoDB-Zeilenoperationen, verschiedene Zeilenoperationen, Semaphoren und
Informationen aus dem Wartearray. Es zeigt die „row_operations“ an.
Standardmäßig sind die Tabellen „row_operation_misc“, „semaphores“ und „wait_array“ enthalten.

S: Variablen und Status
Dieser Modus berechnet Statistiken, z. B. Abfragen pro Sekunde, und druckt sie aus
mehrere verschiedene Stile. Sie können absolute Werte oder inkrementelle Werte dazwischen anzeigen
Zecken.

Per Tastendruck können Sie zwischen den Ansichten wechseln. Die Taste „s“ druckt eine einzelne Zeile
Jedes Mal, wenn der Bildschirm aktualisiert wird, im Stil von vmstat. Die Taste „g“ ändert die Ansicht auf
ein Diagramm mit den gleichen Zahlen, so ähnlich tladen. Die Taste „v“ ändert die Ansicht in a
links eine geschwenkte Tabelle mit Variablennamen, über die fortlaufende Aktualisierungen scrollen
den Bildschirm von links nach rechts. Sie können auswählen, wie viele Updates auf dem Bildschirm angezeigt werden sollen
mit der Konfigurationsvariablen „num_status_sets“.

Überschriften können gekürzt werden, damit sie im interaktiven Betrieb auf den Bildschirm passen. Du wählst
welche Variablen mit der Taste „c“ angezeigt werden sollen, welche aus vordefinierten Mengen auswählt, oder
können Sie Ihre eigenen Sets erstellen. Sie können den aktuellen Satz mit der Taste „e“ bearbeiten.

In diesem Modus werden im Gegensatz zu anderen Modi keine Tabellen angezeigt. Stattdessen wird a verwendet
Tabellendefinition, um die Daten zu extrahieren und zu formatieren, transformiert dann aber das Ergebnis in
spezielle Wege vor der Ausgabe. Es verwendet die Tabellendefinition „var_status“ für
Dies.

T: InnoDB-Transaktionen
In diesem Modus werden Transaktionen aus der Ausgabe des InnoDB-Monitors angezeigt Top-ähnliches Format.
Dieser Modus ist der Grund, warum ich innotop geschrieben habe.

Sie können Abfragen oder Prozesse mit den Tasten „k“ und „x“ beenden und eine Abfrage mit EXPLAIN ausführen
die Tasten „e“ oder „f“. InnoDB druckt also nicht die vollständige Abfrage in Transaktionen
Die Erklärung funktioniert möglicherweise nicht richtig, wenn die Abfrage abgeschnitten ist.

Die Informationskopfzeile kann mit der Taste „h“ ein- und ausgeschaltet werden. Standardmäßig,
innotop verbirgt inaktive Transaktionen und die eigene Transaktion. Sie können dies einschalten
und los geht’s mit den Tasten „i“ und „a“.

In diesem Modus werden standardmäßig die Tabellen „t_header“ und „innodb_transactions“ angezeigt.

INNOTOP STATUS


Die erste Zeile, die innotop anzeigt, ist eine Art „Statusleiste“. Was es enthält, hängt davon ab
den Modus, in dem Sie sich befinden, und welche Server Sie überwachen. Die ersten paar Wörter sind immer
[RO] (wenn readonly auf 1 gesetzt ist), der Innotop-Modus, z. B. „InnoDB Txns“ für den T-Modus,
gefolgt von einer Erinnerung, „?“ zu drücken. für Hilfe jederzeit.

EINEM SERVER
Der einfachste Fall ist die Überwachung eines einzelnen Servers. In diesem Fall der Name von
Die Verbindung steht als nächstes in der Statuszeile. Dies ist der Name, den Sie beim Erstellen angegeben haben
Verbindung – höchstwahrscheinlich der Hostname des MySQL-Servers. Darauf folgt der Server
Betriebszeit.

Wenn Sie sich in einem InnoDB-Modus wie T oder B befinden, lautet das nächste Wort „InnoDB“, gefolgt von „some“.
Informationen zur SHOW INNODB STATUS-Ausgabe, die zum Rendern des Bildschirms verwendet wird. Das erste Wort
ist die Anzahl der Sekunden seit dem letzten SHOW INNODB STATUS, die InnoDB zur Berechnung verwendet
einige Statistiken pro Sekunde. Das nächste ist ein Smiley, der anzeigt, ob die InnoDB
Die Ausgabe wird abgeschnitten. Wenn das Smiley-Gesicht ein :- ist, ist alles in Ordnung; es gibt keine Kürzung. A
:^| bedeutet, dass die Transaktionsliste so lang ist, dass InnoDB nur einige davon ausgedruckt hat
Transaktionen. Schließlich bedeutet ein Stirnrunzeln :-(, dass die Ausgabe unvollständig ist, was wahrscheinlich daran liegt
zu einem Deadlock, der zu viele Sperrinformationen ausgibt (siehe „D: InnoDB Deadlocks“).

Die nächsten beiden Wörter geben die Abfragen pro Sekunde (QPS) des Servers und die Anzahl der Threads an
(Verbindungen) bestehen. Schließlich steht als letztes die Versionsnummer des Servers auf der Liste.

MEHRERE SERVER
Wenn Sie mehrere Server überwachen (siehe „SERVERVERBINDUNGEN“), ist dies in der Statuszeile der Fall
keine Details zu einzelnen Servern anzeigen. Stattdessen werden die Namen der angezeigt
Verbindungen, die aktiv sind. Auch hier handelt es sich um von Ihnen angegebene Verbindungsnamen
wahrscheinlich der Hostname des Servers. Einer fehlerhaften Verbindung wird ein vorangestellt
Ausrufezeichen.

Wenn Sie eine Gruppe von Servern überwachen (siehe „SERVERGRUPPEN“), wird in der Statuszeile Folgendes angezeigt
Name der Gruppe. Wenn bei einer Verbindung in der Gruppe ein Fehler auftritt, wird der Name der Gruppe angezeigt
gefolgt vom Anteil der Verbindungen, die keine Fehler aufweisen.

Weitere Einzelheiten zur Fehlerbehandlung von innotop finden Sie unter „FEHLERBEHANDLUNG“.

ÜBERWACHUNG A FILE
Wenn Sie in der Befehlszeile einen Dateinamen angeben, stellt innotop keine Verbindung zu KEINEN Servern her
alle. Es überwacht die angegebene Datei auf die InnoDB-Statusausgabe und verwendet diese als Daten
Quelle. Es wird immer eine einzelne Verbindung mit dem Namen „Datei“ angezeigt. Und da es nicht geht
Wenn Sie eine Verbindung zu einem Server herstellen, kann nicht ermittelt werden, wie lange der überwachte Server aktiv war.
Daher wird die Betriebszeit des Servers als Zeit seit dem Start von innotop berechnet.

SERVER VERWALTUNG


Während innotop in erster Linie ein Monitor ist, mit dem Sie Ihre Server überwachen und analysieren können, ist dies auch möglich
Senden Sie auch Befehle an Server. Die am häufigsten nützlichen Befehle sind das Beenden von Abfragen
und Stoppen oder Starten von Slaves.

Sie können eine Verbindung beenden oder in neueren Versionen von MySQL eine Abfrage beenden, nicht jedoch eine
Verbindung aus den Modi „Q: Abfrageliste“ und „T: InnoDB-Transaktionen“. Drücken Sie „k“, um a auszugeben
KILL-Befehl oder „x“, um einen KILL QUERY-Befehl auszugeben. innotop fordert Sie dazu auf
Server- und/oder Verbindungs-ID zum Beenden (innotop fordert Sie nicht dazu auf, wenn es nur eine gibt).
mögliche Auswahl für jede Eingabe). innotop wählt die am längsten laufende Abfrage vorab aus
älteste Verbindung. Bestätigen Sie den Befehl mit „y“.

Im „Slave-Replikationsstatus“ im „M: Master-Modus“ können Sie Slaves mit starten und stoppen
jeweils die Tasten „a“ und „o“. Sie können diese Befehle gleichzeitig an viele Slaves senden.
innotop füllt für Sie den Standardbefehl START SLAVE oder STOP SLAVE aus, Sie können dies jedoch tun
Bearbeiten Sie tatsächlich den Befehl und senden Sie alles, was Sie möchten, z. B. SET GLOBAL
SQL_SLAVE_SKIP_COUNTER=1, damit der Slave beim Start ein Binlog-Ereignis überspringt.

Sie können innotop auch bitten, das früheste von einem Slave verwendete Binlog zu berechnen und eine auszugeben
LÖSCHEN SIE MASTER-LOGS auf dem Master. Benutzen Sie dazu die Taste „b“. innotop fordert Sie zur Eingabe eines auf
Geben Sie den Master ein, auf dem der Befehl ausgeführt werden soll, und fordern Sie dann die Verbindungsnamen dieses Masters an
Slaves (es gibt für innotop keine Möglichkeit, dies zuverlässig selbst zu ermitteln). innotop findet
das von diesen Slave-Verbindungen verwendete Mindest-Binlog und schlägt es als Argument vor
MASTER-LOGS LÖSCHEN.

SERVER CONNECTIONS


Wenn Sie mit „@“ eine Serververbindung herstellen, werden Sie von innotop nach einer Reihe von Eingaben gefragt, z
folgt:

DSN Ein DSN ist ein Datenquellenname, der das erste Argument ist, das an das DBI-Modul übergeben wird
zur Verbindung mit einem Server. Es hat normalerweise die Form

DBI:mysql:;mysql_read_default_group=mysql;host=HOSTNAME

Da dieser DSN an den DBD::mysql-Treiber übergeben wird, sollten Sie die des Treibers lesen
Dokumentation unter „/search.cpan.org/dist/DBD-mysql/lib/DBD/mysql.pm“ in „http: für die
Genaue Details zu allen Optionen können Sie dem Treiber im DSN übergeben. Du kannst lesen
mehr über DBI unterhttp://dbi.perl.org/docs/>, und vor allem bei
<http://search.cpan.org/~timb/DBI/DBI.pm>.

Mit der Option mysql_read_default_group=mysql kann der DBD-Treiber Ihre MySQL-Optionen lesen
Dateien, wie z ~/.mein.cnf auf UNIX-Systemen. Sie können dies nutzen, um die Angabe von a zu vermeiden
Benutzername oder Passwort für die Verbindung.

InnoDB-Deadlock-Tabelle
Dieses optionale Element teilt innotop einen Tabellennamen mit, den es zum gezielten Erstellen einer Tabelle verwenden kann
kleiner Deadlock (siehe „D: InnoDB Deadlocks“). Wenn Sie diese Option angeben, benötigen Sie nur
um sicherzustellen, dass die Tabelle nicht existiert und dass Innotop die Tabelle erstellen und löschen kann
mit der InnoDB-Speicher-Engine. Sie können die Standardeinstellung getrost weglassen oder einfach akzeptieren, wenn Sie möchten
Ich habe nicht vor, dies zu verwenden.

Benutzername
innotop fragt Sie, ob Sie einen Benutzernamen angeben möchten. Wenn Sie „y“ sagen, dann wird es so sein
fordert Sie zur Eingabe eines Benutzernamens auf. Wenn Sie eine MySQL-Optionsdatei haben, die Ihre angibt
Benutzername, Sie müssen keinen Benutzernamen angeben.

Der Benutzername ist standardmäßig Ihr Anmeldename auf dem System, auf dem Sie innotop ausführen.

Passwort
innotop fragt Sie, ob Sie ein Passwort festlegen möchten. Wie der Benutzername, der
Das Passwort ist optional, aber es gibt eine zusätzliche Eingabeaufforderung, in der Sie gefragt werden, ob Sie speichern möchten
das Passwort in der innotop-Konfigurationsdatei. Wenn Sie es nicht im speichern
In der Konfigurationsdatei werden Sie bei jedem Start von innotop zur Eingabe eines Passworts aufgefordert.
Passwörter in der innotop-Konfigurationsdatei werden im Klartext gespeichert und nicht verschlüsselt
wie auch immer.

Sobald Sie mit der Beantwortung dieser Fragen fertig sind, sollten Sie mit einem Server verbunden sein. Aber
innotop beschränkt sich nicht auf die Überwachung eines einzelnen Servers; Sie können viele Server definieren
Verbindungen aufrufen und durch Drücken der Taste „@“ zwischen ihnen wechseln. Siehe „WECHSEL ZWISCHEN
VERBINDUNGEN".

SERVER GRUPPEN


Wenn Sie über mehrere MySQL-Instanzen verfügen, können Sie diese in benannte Gruppen einteilen, z. B. „alle“,
„Master“ und „Slaves“, die innotop alle gemeinsam überwachen kann.

Sie können mit der „#“-Taste auswählen, welche Gruppe überwacht werden soll, und Sie können die TAB-Taste drücken, um sie zu überwachen
zur nächsten Gruppe wechseln. Wenn Sie gerade keine Gruppe überwachen, drücken Sie die Tabulatortaste
wählt die erste Gruppe aus.

Um eine Gruppe zu erstellen, drücken Sie die Taste „#“, geben Sie den Namen Ihrer neuen Gruppe ein und geben Sie dann den ein
Namen der Verbindungen, die die Gruppe enthalten soll.

SCHALTEN ZWISCHEN CONNECTIONS


Mit innotop können Sie schnell wechseln, welche Server Sie überwachen. Der einfachste Weg ist per
Drücken Sie die Taste „@“ und geben Sie den/die Namen der Verbindung(en) ein, die Sie verwenden möchten. Das
Die Einstellung erfolgt pro Modus, sodass Sie in jedem Modus und innotop unterschiedliche Verbindungen überwachen können
merkt sich, welche Verbindungen Sie wählen.

Mit der Taste „n“ können Sie in alphabetischer Reihenfolge schnell zur „nächsten“ Verbindung wechseln.
Wenn Sie eine Servergruppe überwachen (siehe „SERVERGRUPPEN“), wechselt dies zur ersten
Verbindung.

Sie können auch viele Verbindungsnamen eingeben, von denen innotop dann Daten abruft und anzeigt
alle. Trennen Sie die Verbindungsnamen einfach durch Leerzeichen, zum Beispiel „Server1 Server2“.
Auch hier: Wenn Sie den Namen einer Verbindung eingeben, die nicht existiert, werden Sie von innotop dazu aufgefordert
für Verbindungsinformationen und stellen Sie die Verbindung her.

Eine weitere Möglichkeit, mehrere Verbindungen gleichzeitig zu überwachen, sind Servergruppen. Sie können verwenden
Drücken Sie die TAB-Taste, um in alphabetischer Reihenfolge zur „nächsten“ Gruppe zu wechseln, oder wenn Sie dies nicht tun
Wenn Sie Gruppen überwachen, wechselt TAB zur ersten Gruppe.

innotop ruft Daten nicht parallel von Verbindungen ab, wenn Sie also eine große überwachen
Wenn Sie eine Gruppe oder viele Verbindungen verwenden, stellen Sie möglicherweise eine erhöhte Verzögerung zwischen den Ticks fest.

Wenn Sie mehr als eine Verbindung überwachen, ändert sich die Statusleiste von innotop. Siehe „INNOTOP
STATUS".

ERROR HANDHABUNG


Die Fehlerbehandlung ist bei der Überwachung einer einzelnen Verbindung nicht so wichtig, aber entscheidend
wenn Sie viele aktive Verbindungen haben. Ein abgestürzter Server oder eine verlorene Verbindung sollten dies nicht tun
Absturz innotop. Dadurch läuft innotop auch im Fehlerfall weiter; Es
Es werden lediglich keine Informationen zu der Verbindung angezeigt, bei der ein Fehler aufgetreten ist. Wegen
Das Verhalten von innotop könnte Sie verwirren. Es ist eine Funktion, kein Fehler!

innotop fragt fehlerhafte Verbindungen nicht weiter ab, da diese möglicherweise langsamer werden
innotop und erschweren die Verwendung, insbesondere wenn der Fehler ein Verbindungsproblem ist und
verursacht eine lange Auszeit. Stattdessen versucht innotop die Verbindung gelegentlich erneut, um zu prüfen, ob dies der Fall ist
der Fehler besteht immer noch. Wenn ja, wird es bis zu einem späteren Zeitpunkt warten. Das Warten
Die Zeit nimmt in Ticks zu wie die Fibonacci-Reihe, sodass sie mit zunehmender Zeit seltener versucht
geht vorbei.

Da Fehler aufgrund der in ausgegebenen SQL-Befehle möglicherweise nur in bestimmten Modi auftreten
In diesen Modi verfolgt innotop, welcher Modus den Fehler verursacht hat. Wenn Sie zu a wechseln
In einem anderen Modus versucht innotop die Verbindung erneut, anstatt zu warten.

Standardmäßig zeigt innotop das Problem in roter Schrift unten in der ersten Tabelle an
auf dem Bildschirm. Sie können dieses Verhalten mit „show_cxn_errors_in_tbl“ deaktivieren.
Konfigurationsoption, die standardmäßig aktiviert ist. Wenn die Option „Debug“ aktiviert ist,
innotop zeigt den Fehler am Ende jeder Tabelle an, nicht nur in der ersten. Und wenn
„show_cxn_errors“ ist aktiviert, innotop gibt den Fehlertext auch auf STDOUT aus. Fehler
Je nach Modus werden Meldungen möglicherweise nur in dem Modus angezeigt, der den Fehler verursacht hat
ob innotop die Abfrage dieser Verbindung vermeidet.

NICHT-INTERAKTIV OPERATION


Sie können innotop im nicht interaktiven Modus ausführen. In diesem Fall wird es vollständig von hier aus gesteuert
die Konfigurationsdatei und Befehlszeilenoptionen. Um innotop nicht interaktiv zu starten
Geben Sie im Modus „L“<--nonint“> die Befehlszeilenoption „L“ ein. Dadurch ändert sich das Verhalten von innotop im
folgende Wege:

· Bestimmte Perl-Module werden nicht geladen. Term::Readline wird nicht geladen, da innotop
fordert nicht interaktiv auf. Die Module Term::ANSIColor und Win32::Console::ANSI sind
nicht geladen. Term::ReadKey wird weiterhin verwendet, da innotop möglicherweise nachfragen muss
Verbindungspasswörter beim Start.

· innotop löscht den Bildschirm nicht nach jedem Tick.

· innotop speichert keine Änderungen an der Konfigurationsdatei.

· Wenn „--count“ angegeben ist und sich innotop im Inkrementalmodus befindet (siehe „status_inc“ und
„--inc“) aktualisiert innotop tatsächlich einmal mehr als angegeben, damit es drucken kann
inkrementelle Statistiken. Dadurch wird die Ausgabe während des ersten Ticks unterdrückt, was innotop möglicherweise der Fall ist
scheinen zu hängen.

· innotop zeigt in jedem Modus nur die erste Tabelle an. Auf diese Weise kann die Ausgabe erfolgen
lässt sich leicht mit anderen Befehlszeilendienstprogrammen wie awk und sed verarbeiten. Wechseln
Welche Tabellen in den einzelnen Modi angezeigt werden, finden Sie unter „TABELLEN“. Da der Modus „F: Abfrageliste“ so ist
Wichtig, innotop deaktiviert automatisch die Tabelle „q_header“. Dies stellt sicher, dass Sie
Sehen Sie sich die Tabelle „processlist“ an, auch wenn Sie innotop so konfiguriert haben, dass der q_header angezeigt wird
Tisch im interaktiven Betrieb. Ebenso gilt im Modus „T: InnoDB Transactions“ die
Die Tabelle „t_header“ wird unterdrückt, sodass Sie nur die Tabelle „innodb_transactions“ sehen.

· Die gesamte Ausgabe erfolgt durch Tabulatoren getrennt statt spaltenbündig mit Leerzeichen
innotop druckt den vollständigen Inhalt jeder Tabelle, anstatt nur einen Bildschirminhalt auszudrucken
zu einem Zeitpunkt.

· innotop druckt Spaltenüberschriften nur einmal statt jedes Häkchen (siehe „hide_hdr“).
innotop druckt keine Tabellenüberschriften (siehe „display_table_captions“). innotop sorgt dafür
Die Ausgabe enthält keine Leerzeilen.

· innotop berücksichtigt nicht die „Shorten“-Transformation, die normalerweise einige verkürzt
Zahlen in für Menschen lesbare Formate umwandeln.

· innotop druckt keine Statuszeile aus (siehe „INNOTOP STATUS“).

KONFIGURIEREN


Fast alles an innotop ist konfigurierbar. Mit den meisten Dingen lässt sich etwas ändern
integrierte Befehle, Sie können aber auch die Konfigurationsdatei bearbeiten.

Drücken Sie beim Ausführen von innotop die Taste „$“, um den Dialog zur Konfigurationsbearbeitung aufzurufen.
Drücken Sie eine andere Taste, um den Datentyp auszuwählen, den Sie bearbeiten möchten:

S: Angabe der Schlafzeiten
Bearbeitet die Schlafverzögerungen von SQL-Anweisungen, die dazu führen, dass Innotop für die angegebene Zeitspanne pausiert
Zeit nach der Ausführung einer Anweisung. Eine Definition der einzelnen Anweisungen finden Sie unter „SQL-ANWEISUNGEN“.
Aussage und was sie bewirkt. Standardmäßig verzögert innotop keine Anweisungen.

Diese Funktion ist enthalten, sodass Sie die durch die Überwachung verursachten Nebenwirkungen anpassen können
Ihr Server. Möglicherweise sehen Sie keine Effekte, aber einige innotop-Benutzer haben dies bemerkt
Bestimmte MySQL-Versionen dauern unter sehr hoher Auslastung und aktiviertem InnoDB länger als gewöhnlich
um SHOW GLOBAL STATUS auszuführen. Wenn innotop sofort SHOW FULL PROCESSLIST aufruft
Danach enthält die Prozessliste mehr Abfragen, als die Maschine tatsächlich im Durchschnitt verarbeitet
jeden Moment. Innotop so konfigurieren, dass es nach dem Aufruf von SHOW GLOBAL kurz pausiert
STATUS mildert diesen Effekt.

Ruhezeiten werden im Abschnitt „stmt_sleep_times“ der Konfigurationsdatei gespeichert.
Schlafphasen im Bruchteil einer Sekunde werden unterstützt, vorbehaltlich der Einschränkungen Ihrer Hardware.

c: Spalten bearbeiten
Startet den Tabelleneditor für eine der angezeigten Tabellen. Siehe „TABELLEN-EDITOR“. Ein
Eine alternative Möglichkeit, den Tabelleneditor zu starten, ohne den Konfigurationsdialog aufzurufen, ist
mit der Taste „^“.

g: Allgemeine Konfiguration
Startet den Konfigurationseditor zum Bearbeiten der globalen und modusspezifischen Konfiguration
Variablen (siehe „MODES“). innotop fordert Sie auf, eine der Variablen auszuwählen
globale und modusspezifische, abhängig vom aktuellen Modus.

k: Regeln für die Zeilenfärbung
Startet den Editor für Zeilenfärbungsregeln für eine der angezeigten Tabellen. Siehe „FARBEN“
für weitere Einzelheiten.

p: Plugins verwalten
Startet den Plugin-Konfigurationseditor. Weitere Informationen finden Sie unter „PLUGINS“.

s: Servergruppen
Ermöglicht das Erstellen und Bearbeiten von Servergruppen. Siehe „SERVERGRUPPEN“.

t: Wählen Sie Angezeigte Tabellen
Hier können Sie auswählen, welche Tabellen in diesem Modus angezeigt werden sollen. Siehe „MODI“ und „TABELLEN“.

CONFIGURATION FILE


Die Standardspeicherorte der Konfigurationsdateien von innotop sind $HOME/.innotop und
/etc/innotop/innotop.conf, und sie werden in dieser Reihenfolge gesucht. Wenn der erste
Wenn die Konfigurationsdatei vorhanden ist, wird die zweite nicht verarbeitet. Diese können mit überschrieben werden
die Befehlszeilenoption „--config“. Sie können es sicher von Hand bearbeiten, wie auch immer innotop lautet
beim Start die Konfigurationsdatei und schreibt sie, wenn readonly auf 0 gesetzt ist, wieder aus
wenn es ausgeht. Wenn also readonly auf 0 gesetzt ist, werden alle Änderungen, die Sie manuell vornehmen, während innotop
läuft, geht verloren.

innotop speichert nicht seine gesamte Konfiguration in der Konfigurationsdatei. Es hat eine riesige
Satz von Standardkonfigurationswerten, die nur im Speicher gespeichert sind, und die Konfiguration
Die Datei überschreibt nur diese Standardeinstellungen. Wenn Sie eine Standardeinstellung anpassen, innotop
Notizen und speichert dann die Anpassungen in der Datei. Dadurch wird die Dateigröße gering gehalten,
erleichtert die Bearbeitung und erleichtert Upgrades.

Eine Konfigurationsdatei ist standardmäßig schreibgeschützt. Sie können dies mit „--write“ überschreiben. Sehen
"schreibgeschützt".

Die Konfigurationsdatei ist wie eine INI-Datei in Abschnitte unterteilt. Jeder Abschnitt beginnt
mit [Abschnittsname] und endet mit [/Abschnittsname]. Die Einträge jedes Abschnitts haben eine
Je nachdem, welche Daten sie speichern müssen, verwenden sie eine unterschiedliche Syntax. Sie können Kommentare in die einfügen
Datei; Jede Zeile, die mit einem #-Zeichen beginnt, ist ein Kommentar. innotop liest das nicht
Kommentare, sodass sie beim Beenden nicht wieder in die Datei geschrieben werden. Kommentare im Lesemodus
Allerdings sind nur noch Konfigurationsdateien nützlich.

Die erste Zeile in der Datei ist die Versionsnummer von innotop. Dadurch kann innotop erkennen, wann die
Das Dateiformat ist nicht abwärtskompatibel und kann problemlos aktualisiert werden, ohne dass Ihr Dateiformat zerstört wird
individuelle Konfiguration.

Die folgende Liste beschreibt jeden Abschnitt der Konfigurationsdatei und die darin enthaltenen Daten
enthält:

General
Der Abschnitt „Allgemein“ enthält globale Konfigurationsvariablen und Variablen, die ggf
modusspezifisch sein, aber in keinen anderen Abschnitt gehören. Die Syntax ist einfach
Schlüssel=Werteliste. innotop schreibt über jeden Wert einen Kommentar, der Ihnen beim Bearbeiten der Datei hilft
von Hand.

S_func
Steuert die Darstellung im S-Modus (siehe „S: Variablen und Status“). Wenn g, sind die Werte
grafisch dargestellt; wenn s, sind die Werte wie vmstat; Wenn p, befinden sich die Werte in einer Pivot-Tabelle.

S_set
Gibt an, welcher Variablensatz im Modus „S: Variablen & Status“ angezeigt werden soll. Sehen
„VARIABLE SÄTZE“.

auto_wipe_dl
Weist innotop an, große Deadlocks automatisch zu löschen, wenn es diese bemerkt.
In diesem Fall stellen Sie möglicherweise eine leichte Verzögerung fest. Beim nächsten Tick werden Sie es tun
Normalerweise werden die Informationen angezeigt, die durch den großen Deadlock abgeschnitten wurden.

charset
Gibt an, welche Art von Zeichen durch „no_ctrl_char“ zugelassen werden sollen.
Transformation. Dadurch wird verhindert, dass nicht druckbare Zeichen ein Terminal verwirren
wenn Sie Abfragen überwachen, die Binärdaten enthalten, z. B. Bilder.

Der Standardwert ist „ascii“, was alles außerhalb des normalen ASCII als a betrachtet
Steuerzeichen. Die anderen zulässigen Werte sind „unicode“ und „none“. 'keiner'
betrachtet jedes Zeichen als Steuerzeichen, was beim Reduzieren nützlich sein kann
ALLE Textfelder in Abfragen.

cmd_filter
Dies ist das Präfix, das Variablen im Modus „C: Command Summary“ filtert.

Farbe
Ob Terminalfärbung zulässig ist.

cxn_timeout
Bei MySQL-Versionen 4.0.3 und neuer wird diese Variable zum Festlegen der Verbindungen verwendet
Timeout, sodass MySQL die Verbindung nicht schließt, wenn sie eine Zeit lang nicht verwendet wird.
Dies kann passieren, weil eine Verbindung in einem bestimmten Modus nicht überwacht wird, z
Beispiel.

debuggen
Diese Option ermöglicht ausführlichere Fehler und macht innotop in einigen Fällen strenger
setzt. Es kann beim Debuggen von Filtern und anderem benutzerdefinierten Code hilfreich sein. Es auch
veranlasst innotop, bei einem Absturz viele Informationen in die „Debugdatei“ zu schreiben.

Debug-Datei
Eine Datei, in die innotop bei einem Absturz Informationen schreibt. Sehen
„DATEIEN“.

display_table_captions
innotop zeigt über den meisten Tabellen eine Tabellenüberschrift an. Diese Variable unterdrückt oder
Zeigt Beschriftungen für alle Tabellen weltweit an. Einige Tabellen sind mit konfiguriert
hide_caption-Eigenschaft, die diese überschreibt.

globale
Ob GLOBALE Variablen und Status angezeigt werden sollen. innotop versucht dies nur auf
Server, die die GLOBAL-Option für SHOW VARIABLES und SHOW STATUS unterstützen. In
Bei einigen MySQL-Versionen benötigen Sie hierfür bestimmte Berechtigungen. wenn nicht
Wenn Sie sie verwenden, kann innotop keine Variablen- und Statusdaten abrufen. Das
Mit der Konfigurationsvariablen können Sie innotop ausführen und so viele Daten wie möglich abrufen
ohne die erhöhten Privilegien.

Ich kann die Situation, in der GLOBAL nicht erlaubt war, nicht mehr finden oder reproduzieren, aber ich
Ich weiß, dass es einen gab.

graph_char
Definiert das Zeichen, das beim Zeichnen von Diagrammen im Modus „S: Variablen & Status“ verwendet werden soll.

header_highlight
Definiert, wie Spaltenüberschriften hervorgehoben werden. Dies funktioniert nur, wenn Term::ANSIColor ist
verfügbar. Gültige Werte sind „fett“ und „unterstrichen“.

hide_hdr
Blendet Spaltenüberschriften global aus.

Intervall
Das Intervall, in dem innotop seine Daten aktualisiert (Ticks). Das Intervall ist
Wird als Ruhezeit zwischen Ticks implementiert, sodass das tatsächliche Intervall variieren kann
abhängig davon, wie lange Innotop zum Abrufen und Rendern von Daten benötigt.

Diese Variable akzeptiert Sekundenbruchteile.

Modus
Der Modus, in dem innotop starten soll. Zulässige Argumente sind die gleichen wie die
Tastendrücke, die interaktiv einen Modus auswählen. Siehe „MODI“.

Anzahl_Stellen
Wie viele Stellen in Bruchzahlen und Prozenten angezeigt werden sollen. Der Bereich dieser Variablen
liegt zwischen 0 und 9 und kann direkt aus dem Modus „S: Variablen & Status“ mit eingestellt werden
die Tasten „+“ und „-“. Es wird in „set_precision“, „shorten“ und „percent“ verwendet.
Transformationen.

num_status_sets
Steuert, wie viele Sätze von Statusvariablen im Pivot-Dialog „S: Variablen &“ angezeigt werden.
Status"-Modus. Er steuert auch die Anzahl der alten Variablensätze, die innotop behält
in seinem Speicher, d.h. je größer diese Variable ist, desto mehr Speicher belegt innotop.

Plugin-Verzeichnis
Gibt an, wo Plugins zu finden sind. Standardmäßig speichert innotop Plugins im
Unterverzeichnis „plugins“ Ihres innotop-Konfigurationsverzeichnisses.

schreibgeschützt
Ob die Konfigurationsdatei schreibgeschützt ist. Dies kann nicht interaktiv eingestellt werden.

show_cxn_errors
Macht innotop Druckverbindungsfehler zu STDOUT. Siehe „FEHLERBEHANDLUNG“.

show_cxn_errors_in_tbl
Bewirkt, dass Innotop Verbindungsfehler als Zeilen in der ersten Tabelle auf dem Bildschirm anzeigt. Sehen
"FEHLERBEHANDLUNG".

show_percent
Fügt nach dem von der „Prozent“-Transformation zurückgegebenen Wert ein „%“-Zeichen hinzu.

zeige Statusleiste
Steuert, ob die Statusleiste im Display angezeigt werden soll. Siehe „INNOTOP-STATUS“.

skip_innodb
Deaktiviert das Abrufen von SHOW INNODB STATUS, falls Ihre Server nicht über InnoDB verfügen
aktiviert und Sie möchten nicht, dass Innotop versucht, es abzurufen. Dies kann auch nützlich sein
Wenn Sie nicht über die SUPER-Berechtigung verfügen, die zum Ausführen von SHOW INNODB STATUS erforderlich ist.

status_inc
Ob absolute oder inkrementelle Werte für Statusvariablen angezeigt werden sollen. Inkrementell
Die Werte werden als Offset vom letzten Wert berechnet, den Innotop dafür gesehen hat
Variable. Dies ist eine globale Einstellung, wird aber voraussichtlich modusspezifisch sein
Irgendwann. Im Moment wird es etwas uneinheitlich gewürdigt; Einige Modi zahlen nicht
darauf aufmerksam.

Plugins
Dieser Abschnitt enthält eine Liste der Paketnamen aktiver Plugins. Wenn das Plugin existiert,
innotop wird es aktivieren. Weitere Informationen finden Sie unter „PLUGINS“.

Filter
Dieser Abschnitt enthält benutzerdefinierte Filter (siehe „FILTER“). Jede Zeile ist im Format
filter_name=text='Filtertext' tbls='Tabellenliste'.

Der Filtertext ist der Text des Unterprogrammcodes. Die Tabellenliste ist eine Liste von
Tabellen, auf die der Filter angewendet werden kann. Standardmäßig gelten benutzerdefinierte Filter für
Tabelle, für die sie erstellt wurden, aber Sie können dies manuell überschreiben, indem Sie die bearbeiten
Definition in der Konfigurationsdatei.

aktive_filter
In diesem Abschnitt wird gespeichert, welche Filter für jede Tabelle aktiv sind. Jede Zeile befindet sich in der
formatieren Sie Tabellenname=Filterliste.

tbl_meta
In diesem Abschnitt werden benutzerdefinierte oder benutzerdefinierte Spalten gespeichert (siehe „Spalten“). Jede
Zeile hat das Format col_name=properties, wobei die Eigenschaften a sind
name=Liste mit Anführungszeichen.

Verbindungen
Dieser Abschnitt enthält die von Ihnen definierten Serververbindungen. Jede Zeile befindet sich in der
Format „Name=Eigenschaften“, wobei es sich bei den Eigenschaften um eine Name=Wert-Liste handelt. Die Eigenschaften
sind selbsterklärend, und das einzige, das speziell behandelt wird, ist „pass“.
nur vorhanden, wenn 'savepass' gesetzt ist. Dieser Abschnitt der Konfigurationsdatei wird sein
wird übersprungen, wenn Befehlszeilenoptionen für DSN, Benutzername oder Passwort verwendet werden. Siehe „SERVER
VERBINDUNGEN".

active_connections
Dieser Abschnitt enthält eine Liste der Verbindungen, die in den einzelnen Modi aktiv sind. Jede Zeile ist
im Format mode_name=connection_list.

server_groups
Dieser Abschnitt enthält Servergruppen. Jede Zeile hat das Format name=connection_list.
Siehe „SERVERGRUPPEN“.

aktive_server_gruppen
Dieser Abschnitt enthält eine Liste, welche Servergruppe in jedem Modus aktiv ist. Jede Zeile ist
im Format mode_name=server_group.

max_values_seen
Dieser Abschnitt enthält die Maximalwerte, die für Variablen angezeigt werden. Dies wird zur Skalierung verwendet
Diagramme im Modus „S: Variablen & Status“. Jede Zeile hat das Format Name=Wert.

aktive_spalten
Dieser Abschnitt enthält Tabellenspaltenlisten. Jede Zeile ist im Format
tbl_name=column_list. Siehe „Spalten“.

sort_cols
Dieser Abschnitt enthält die Sortierdefinition. Jede Zeile ist im Format
tbl_name=column_list. Wenn einer Spalte das Präfix „-“ vorangestellt ist, wird diese Spalte absteigend sortiert.
Siehe „SORTIEREN“.

sichtbare_Tabellen
In diesem Abschnitt wird definiert, welche Tabellen in den einzelnen Modi sichtbar sind. Jede Zeile befindet sich in der
formatieren Sie mode_name=table_list. Siehe „TABELLEN“.

Varsets
In diesem Abschnitt werden Variablensätze zur Verwendung im Modus „S: Status & Variablen“ definiert. Jede Zeile
hat das Format name=variable_list. Siehe „VARIABLEN-SÄTZE“.

Farben
In diesem Abschnitt werden Kolorierungsregeln definiert. Jede Zeile ist im Format
tbl_name=property_list. Siehe „FARBEN“.

stmt_sleep_times
Dieser Abschnitt enthält Angaben zu den Schlafzeiten. Jede Zeile ist im Format
Anweisungsname=Schlafzeit. Siehe „S: Statement-Schlafzeiten“.

gruppiere nach
Dieser Abschnitt enthält Spaltenlisten für Ausdrücke der Tabelle „group_by“. Jede Zeile ist drin
das Format tbl_name=column_list. Siehe „GRUPPE“.

CUSTOMIZING


Sie können innotop sehr individuell anpassen. Sie können zum Beispiel:

· Wählen Sie aus, welche Tabellen angezeigt werden sollen und in welcher Reihenfolge.

· Wählen Sie aus, welche Spalten sich in diesen Tabellen befinden, und erstellen Sie neue Spalten.

· Filtern Sie, welche Zeilen mit integrierten Filtern, benutzerdefinierten Filtern und Schnellfiltern angezeigt werden.
Filter.

· Sortieren Sie die Zeilen, um wichtige Daten an die erste Stelle zu setzen, oder gruppieren Sie verwandte Zeilen.

· Markieren Sie Zeilen mit Farbe.

· Passen Sie die Ausrichtung, Breite und Formatierung von Spalten an und wenden Sie Transformationen an
in Spalten, um Teile ihrer Werte zu extrahieren oder die Werte nach Ihren Wünschen zu formatieren (z
(z. B. das Verkürzen großer Zahlen auf bekannte Einheiten).

· Entwerfen Sie Ihre eigenen Ausdrücke, um Daten nach Bedarf zu extrahieren und zu kombinieren. Das gibt Ihnen
unbegrenzte Flexibilität.

All dies und mehr werden in den folgenden Abschnitten erläutert.

TABELLEN
Eine Tabelle ist das, was Sie erwarten würden: eine Sammlung von Spalten. Es hat auch einige andere Eigenschaften,
wie zum Beispiel eine Bildunterschrift. Filter, Sortierregeln und Farbregeln gehören zu Tabellen und
werden in späteren Abschnitten behandelt.

Intern werden Tabellenmetadaten in einer Datenstruktur namens %tbl_meta definiert. Dieser Hash
enthält alle integrierten Tabellendefinitionen, die viele Standardanweisungen enthalten
innotop. Zu den Metadaten gehören die Beschriftung, eine Liste der vom Benutzer angepassten Spalten, a
Liste von Spalten, eine Liste von sichtbaren Spalten, eine Liste von Filtern, Farbregeln, eine Sortierspalte
Liste, Sortierrichtung und einige Informationen zu den Datenquellen der Tabelle. Das meiste davon
ist über den Tabelleneditor anpassbar (siehe „TABELLEN-EDITOR“).

Sie können auswählen, welche Tabellen angezeigt werden sollen, indem Sie die Taste „$“ drücken. Siehe „MODI“ und „TABELLEN“.

Der Tabellenlebenszyklus ist wie folgt:

· Jede Tabelle beginnt mit einer Datenquelle, bei der es sich um ein Array von Hashes handelt. Siehe unten für
Details zu Datenquellen.

· Jedes Element der Datenquelle wird zu einer Zeile in der endgültigen Tabelle.

· Für jedes Element in der Datenquelle extrahiert innotop Werte aus der Quelle und
erstellt eine Zeile. Diese Zeile ist ein weiterer Hash, der in späteren Schritten als $set bezeichnet wird.
Die Werte, die innotop extrahiert, werden durch die Spalten der Tabelle bestimmt. Jede Spalte hat eine
Extraktionsunterprogramm, kompiliert aus einem Ausdruck (siehe „AUSDRÜCKE“). Das Ergebnis
row ist ein Hash, dessen Schlüssel den gleichen Namen haben wie der Spaltenname.

· innotop filtert die Zeilen und entfernt diejenigen, die nicht angezeigt werden müssen. Sehen
„FILTER“.

· innotop sortiert die Zeilen. Siehe „SORTIEREN“.

· innotop gruppiert die Zeilen, sofern angegeben. Siehe „GRUPPE“.

· innotop färbt die Zeilen ein. Siehe „FARBEN“.

· innotop transformiert die Spaltenwerte in jeder Zeile. Siehe „TRANSFORMATIONEN“.

· innotop dreht optional die Zeilen (siehe „PIVOTEN“), filtert und sortiert sie anschließend.

· innotop formatiert und richtet die Zeilen als Tabelle aus. Bei diesem Schritt kommt innotop zum Einsatz
Weitere Formatierung der Spaltenwerte, einschließlich Ausrichtung, Maximum und Minimum
Breiten. innotop führt außerdem eine abschließende Fehlerprüfung durch, um sicherzustellen, dass es nicht zu Abstürzen kommt
undefinierte Werte. Innotop fügt dann ggf. eine Beschriftung hinzu und die Tabelle ist bereit
zu drucken.

Der Lebenszyklus unterscheidet sich geringfügig, wenn die Tabelle gedreht wird, wie oben erwähnt. Um klarzustellen,
Wenn die Tabelle geschwenkt ist, erfolgt der Vorgang: Extrahieren, Gruppieren, Transformieren, Pivotieren, Filtern, Sortieren usw.
erstellen. Wenn es nicht geschwenkt ist, besteht der Prozess aus Extrahieren, Filtern, Sortieren, Gruppieren, Färben usw.
verwandeln, erschaffen. Dieser etwas komplizierte Prozess lässt sich nicht so gut auf SQL abbilden, aber
Das Schwenken macht die Sache ziemlich kompliziert. Grob gesagt: Filtern und Sortieren
geschieht so spät wie nötig, um das erwartete Endergebnis zu erzielen, aber so früh wie möglich
aus Effizienzgründen möglich.

Nachfolgend wird jede integrierte Tabelle beschrieben:

adaptive_hash_index
Zeigt Daten zum adaptiven Hash-Index von InnoDB an. Datenquelle: „STATUS_VARIABLES“.

buffer_pool
Zeigt Daten zum Pufferpool von InnoDB an. Datenquelle: „STATUS_VARIABLES“.

cmd_summary
Zeigt gewichtete Statusvariablen an. Datenquelle: „STATUS_VARIABLES“.

deadlock_locks
Zeigt an, welche Sperren vom letzten erkannten Deadlock gehalten und gewartet wurden. Daten
Quelle: „DEADLOCK_LOCKS“.

deadlock_transactions
Zeigt Transaktionen an, die am letzten erkannten Deadlock beteiligt waren. Datenquelle:
„DEADLOCK_TRANSACTIONS“.

erklären
Zeigt die Ausgabe von EXPLAIN. Datenquelle: „EXPLAIN“.

file_io_misc
Zeigt Daten zu den Datei- und E/A-Vorgängen von InnoDB an. Datenquelle:
„STATUS_VARIABLES“.

fk_error
Zeigt verschiedene Daten zum letzten Fremdschlüsselfehler von InnoDB an. Datenquelle:
„STATUS_VARIABLES“.

innodb_locks
Zeigt InnoDB-Sperren an. Datenquelle: „INNODB_LOCKS“.

innodb_transactions
Zeigt Daten zu den aktuellen Transaktionen von InnoDB an. Datenquelle:
„INNODB_TRANSACTIONS“.

insert_buffers
Zeigt Daten zum Einfügepuffer von InnoDB an. Datenquelle: „STATUS_VARIABLES“.

io_threads
Zeigt Daten zu den E/A-Threads von InnoDB an. Datenquelle: „IO_THREADS“.

log_statistics
Zeigt Daten über das Protokollierungssystem von InnoDB an. Datenquelle: „STATUS_VARIABLES“.

master_status
Zeigt den Replikationsmasterstatus an. Datenquelle: „STATUS_VARIABLES“.

open_tables
Zeigt offene Tabellen an. Datenquelle: „OPEN_TABLES“.

page_statistics
Zeigt InnoDB-Seitenstatistiken an. Datenquelle: „STATUS_VARIABLES“.

pending_io
Zeigt ausstehende InnoDB-E/A-Vorgänge an. Datenquelle: „STATUS_VARIABLES“.

Prozessliste
Zeigt aktuelle MySQL-Prozesse (Threads/Verbindungen) an. Datenquelle: „PROCESSLIST“.

q_header
Zeigt verschiedene Statuswerte an. Datenquelle: „STATUS_VARIABLES“.

row_operation_misc
Zeigt Daten zu den Zeilenoperationen von InnoDB an. Datenquelle: „STATUS_VARIABLES“.

row_operations
Zeigt Daten zu den Zeilenoperationen von InnoDB an. Datenquelle: „STATUS_VARIABLES“.

Semaphoren
Zeigt Daten zu den Semaphoren und Mutexes von InnoDB an. Datenquelle: „STATUS_VARIABLES“.

Slave_io_status
Zeigt Daten zum Slave-E/A-Thread an. Datenquelle: „STATUS_VARIABLES“.

Slave_SQL_Status
Zeigt Daten zum Slave-SQL-Thread an. Datenquelle: „STATUS_VARIABLES“.

t_header
Zeigt verschiedene InnoDB-Statuswerte an. Datenquelle: „STATUS_VARIABLES“.

var_status
Zeigt vom Benutzer konfigurierbare Daten an. Datenquelle: „STATUS_VARIABLES“.

wait_array
Zeigt Daten zum OS-Warte-Array von InnoDB an. Datenquelle: „OS_WAIT_ARRAY“.

COLUMNS
Spalten gehören zu Tabellen. Sie können die Spalten einer Tabelle auswählen, indem Sie die Taste „^“ drücken
startet den „TABELLEN-EDITOR“ und ermöglicht Ihnen die Auswahl und Bearbeitung von Spalten. Drücken Sie „e“ von innen
Mit dem Tabelleneditor können Sie die Eigenschaften der Spalte bearbeiten:

· hdr: eine Spaltenüberschrift. Dies erscheint in der ersten Zeile der Tabelle.

· nur: Begründung. „-“ bedeutet linksbündig und „rechtsbündig“, genauso
mit printf-Formatierungscodes (kein Zufall).

· dez: ob die Spalte weiter am Dezimalpunkt ausgerichtet werden soll.

· num: ob die Spalte numerisch ist. Dies wirkt sich darauf aus, wie Werte sortiert werden (lexikalisch oder).
numerisch).

· Beschriftung: ein kleiner Hinweis zur Spalte, der in Dialogen erscheint, die dem Benutzer helfen
Spalten auswählen.

· src: ein Ausdruck, den innotop verwendet, um die Daten der Spalte aus ihrer Quelle zu extrahieren (siehe
"DATENQUELLEN"). Weitere Informationen zu Ausdrücken finden Sie unter „AUSDRÜCKE“.

· minw: Gibt eine minimale Anzeigebreite an. Dies trägt zur Stabilisierung des Displays bei
erleichtert das Lesen, wenn sich die Daten häufig ändern.

· maxw: ähnlich wie minw.

· trans: eine Liste von Spaltentransformationen. Siehe „TRANSFORMATIONEN“.

· agg: eine Aggregatfunktion. Siehe „GRUPPE“. Der Standardwert ist „erster“.

· aggonly: steuert, ob die Spalte nur angezeigt wird, wenn die Gruppierung für die Tabelle aktiviert ist
(siehe „GRUPPE“). Standardmäßig ist dies deaktiviert. Dies bedeutet, dass es immer Spalten geben wird
wird standardmäßig angezeigt, unabhängig davon, ob die Gruppierung aktiviert ist oder nicht. Wenn die Aggonly-Funktion einer Spalte festgelegt ist
true, die Spalte wird angezeigt, wenn Sie die Gruppierung in der Tabelle umschalten. Mehrere Spalten
werden auf diese Weise festgelegt, beispielsweise die Zählspalte in „processlist“ und „innodb_transactions“.
Sie sehen also keine Zählung, wenn die Gruppierung nicht aktiviert ist, wohl aber, wenn sie aktiviert ist.

FILTER
Filter entfernen Zeilen aus der Anzeige. Sie verhalten sich ähnlich wie eine WHERE-Klausel in SQL.
innotop verfügt über mehrere integrierte Filter, die irrelevante Informationen wie z. B. inaktiv entfernen
Abfragen, aber Sie können auch Ihre eigenen definieren. Innotop bietet Ihnen auch die Möglichkeit, Schnellfilter zu erstellen,
Diese werden nicht in der Konfigurationsdatei gespeichert und dienen lediglich der einfachen und schnellen Anzeige
nur einige Zeilen.

Sie können einen Filter für jede Tabelle aktivieren oder deaktivieren. Drücken Sie die Taste „%“ (Mnemonik: % sieht aus
So etwas wie eine Linie, die zwischen zwei Kreisen gefiltert wird) und wählen Sie die gewünschte Tabelle aus
Filter, wenn gefragt. Anschließend sehen Sie eine Liste möglicher Filter und eine Liste mit Filtern
derzeit für diese Tabelle aktiviert. Geben Sie die Namen der Filter ein, die Sie anwenden möchten, und drücken Sie
Enter.

BENUTZERDEFINIERTE FILTER

Wenn Sie einen Namen eingeben, der nicht existiert, werden Sie von innotop aufgefordert, den Filter zu erstellen.
Filter sind einfach zu erstellen, wenn Sie Perl kennen, und nicht schwer, wenn Sie nicht über Perl-Kenntnisse verfügen. Was tust du
erstellt eine Unterroutine, die „true“ zurückgibt, wenn die Zeile angezeigt werden soll. Die Reihe ist a
Hash-Referenz, die als $set an Ihre Unterroutine übergeben wird.

Stellen Sie sich beispielsweise vor, Sie möchten die Tabelle „processlist“ filtern, sodass nur solche Abfragen angezeigt werden
liefen schon länger als fünf Minuten. Geben Sie einen neuen Namen für Ihren Filter ein und geben Sie an, wann
Wenn Sie nach dem Hauptteil der Unterroutine gefragt werden, drücken Sie die Tabulatortaste, um die automatische Vervollständigung Ihres Terminals zu starten.
Sie sehen die Namen der Spalten in der Tabelle „processlist“ (innotop versucht dies im Allgemeinen).
helfen Ihnen bei Autovervollständigungslisten). Sie möchten nach der Spalte „Zeit“ filtern. Schreib die
Geben Sie „$set->{time} > 300“ ein, um „true“ zurückzugeben, wenn die Abfrage älter als fünf Minuten ist.
Das ist alles, was Sie tun müssen.

Mit anderen Worten: Der Code, den Sie eingeben, ist von einem impliziten Kontext umgeben, der aussieht
so was:

Unterfilter {
my ( $set ) = @_;
# IHR CODE HIER
}

Wenn Ihr Filter nicht funktioniert oder sich plötzlich etwas anderes anders verhält, kann es sein, dass Sie dies tun
Sie haben einen Fehler in Ihrem Filter gemacht und innotop erkennt den Fehler stillschweigend. Versuchen
Aktivieren Sie „Debug“, damit Innotop stattdessen einen Fehler auslöst.

SCHNELL-FILTER

Die Schnellfilter von innotop sind eine Verknüpfung zum Erstellen eines temporären Filters, der nicht bestehen bleibt
wenn Sie innotop neu starten. Um einen Schnellfilter zu erstellen, drücken Sie die Taste „/“. innotop wird
fordert Sie zur Eingabe des Spaltennamens und des Filtertexts auf. Auch hier können Sie die automatische Vervollständigung verwenden
Spaltennamen. Der Filtertext kann genau der Text sein, nach dem Sie „suchen“ möchten. Für
Beispiel: Um die Tabelle „processlist“ nach Abfragen zu filtern, die sich auf die Tabelle „products“ beziehen,
Geben Sie „/“ und dann „Infoprodukt“ ein.

Der Filtertext kann eigentlich jeder reguläre Perl-Ausdruck sein, aber natürlich ein Literal
Eine Zeichenfolge wie „product“ funktioniert gut als regulärer Ausdruck.

Hinter den Kulissen kompiliert innotop den Schnellfilter zu einem speziell getaggten Filter
Ansonsten wie jeder andere Filter. Es wird einfach nicht in der Konfigurationsdatei gespeichert.

Um Schnellfilter zu löschen, drücken Sie die Taste „\“ und innotop löscht alle auf einmal.

SORTIERUNG
innotop verfügt über sinnvolle integrierte Standardeinstellungen, um die wichtigsten Zeilen oben zu sortieren
Tisch. Wie alles andere in innotop können Sie die Sortierung jeder Tabelle individuell anpassen.

Um den Sortierdialog zu starten, starten Sie den „TABELLEN-EDITOR“ mit der Taste „^“ und wählen Sie ggf. eine Tabelle aus
Geben Sie den erforderlichen Wert ein und drücken Sie die Taste „s“. Sie sehen eine Liste der Spalten, die Sie bei der Sortierung verwenden können
Ausdruck und der aktuelle Sortierausdruck, falls vorhanden. Geben Sie eine Liste von Spalten ein, nach denen Sie
sortieren möchten und drücken Sie die Eingabetaste. Wenn Sie die Sortierung umkehren möchten, stellen Sie dem Spaltennamen ein voran
Minuszeichen. Wenn Sie beispielsweise nach Spalte a aufsteigend sortieren möchten, dann nach Spalte b
Geben Sie absteigend „a -b“ ein. Sie können den gewünschten Spalten auch explizit ein + voranstellen
Aufsteigend sortieren, aber nicht erforderlich.

In einigen Modi sind Tasten zugeordnet, um dieses Dialogfeld direkt zu öffnen und die Sortierung schnell umzukehren
Richtung. Drücken Sie '?' wie üblich, um zu sehen, welche Tasten in welchem ​​Modus zugeordnet sind.

GRUPPIERUNG
innotop kann Zeilen gruppieren oder aggregieren (die Begriffe werden synonym verwendet). Das
ist einer SQL GROUP BY-Klausel ziemlich ähnlich. Sie können festlegen, dass nach bestimmten Spalten gruppiert werden soll.
Wenn Sie keine angeben, wird der gesamte Zeilensatz als eine Gruppe behandelt. Das ist
ganz wie SQL bisher, aber im Gegensatz zu SQL können Sie auch nicht gruppierte Spalten auswählen. innotop
tatsächlich aggregiert jede Spalte. Wenn Sie keine Gruppierungsfunktion explizit angeben,
Der Standardwert ist „erster“. Dies ist grundsätzlich eine Annehmlichkeit, sodass Sie kein angeben müssen
Aggregatfunktion für jede gewünschte Spalte im Ergebnis.

Sie können die Gruppierung einer Tabelle schnell mit der Taste „=“ umschalten, wodurch die Aggregation umgeschaltet wird
Eigentum. Diese Eigenschaft bleibt nicht in der Konfigurationsdatei bestehen.

Die Spalten, nach denen die Tabelle gruppiert ist, werden in der Eigenschaft „group_by“ angegeben. Wenn
Wenn Sie die Gruppierung aktivieren, platziert Innotop die Group_by-Spalten ganz links in der Tabelle.
auch wenn sie nicht sichtbar sein sollen. Der Rest der sichtbaren Spalten erscheint in
nach ihnen bestellen.

Zwei Tabellen verfügen über standardmäßige „group_by“-Listen und eine integrierte Zählspalte: „processlist“ und
„innodb_transactions“. Die Gruppierung erfolgt nach Verbindung und Status, sodass Sie schnell einen Überblick haben
wie viele Abfragen oder Transaktionen sich auf jedem Server, den Sie überwachen, in einem bestimmten Status befinden.
Die Zeitspalten werden als Summe aggregiert; Andere Spalten werden auf dem Standardwert „erste“ belassen.
Anhäufung.

Standardmäßig verwendet die im Modus „S: Variablen & Status“ angezeigte Tabelle auch die Gruppierung, sodass Sie dies tun können
Überwachen Sie Variablen und Status auf vielen Servern. Die Standardaggregationsfunktion in
Dieser Modus ist „Durchschnitt“.

Gültige Gruppierungsfunktionen sind im %agg_funcs-Hash definiert. Sie beinhalten

zuerst
Gibt das erste Element in der Gruppe zurück.

zählen
Gibt die Anzahl der Elemente in der Gruppe zurück, einschließlich undefinierter Elemente, ähnlich wie
SQLs COUNT(*).

avg Gibt den Durchschnitt der definierten Elemente in der Gruppe zurück.

sum Gibt die Summe der Elemente in der Gruppe zurück.

Hier ist ein Beispiel für die Gruppierung am Arbeitsplatz. Angenommen, Sie haben einen sehr ausgelasteten Server mit Hunderten
Anzahl offener Verbindungen und Sie möchten sehen, wie viele Verbindungen sich in welchem ​​Status befinden. Benutzen
Um die integrierten Gruppierungsregeln zu verwenden, können Sie „Q“ drücken, um in den Modus „Q: Abfrageliste“ zu gelangen. Drücken Sie '='
um die Gruppierung umzuschalten (wählen Sie bei Bedarf die Tabelle „processlist“ aus, wenn Sie dazu aufgefordert werden).

Ihre Anzeige könnte nun wie folgt aussehen:

Abfrageliste (? für Hilfe) localhost, 32:33, 0.11 QPS, 1 thd, 5.0.38-log

CXN Cmd Cnt ID Benutzer-Host-Zeitabfrage
localhost-Abfrage 49 12933 webusr localhost 19:38 SELECT * FROM
localhost Senden Da 23 2383 webusr localhost 12:43 SELECT col1,
localhost Sleep 120 140 webusr localhost 5:18:12
localhost Statistics 12 19213 webusr localhost 01:19 SELECT * FROM

Das ist eigentlich ein ziemlich besorgniserregendes Bild. Sie haben viele ungenutzte Verbindungen (Schlaf),
und einige Verbindungen, die Abfragen ausführen (Abfragen und Senden von Daten). Das ist okay, aber du
Ich habe auch viel im Statistikstatus und verbringe zusammen mehr als eine Minute. Das bedeutet die
Dem Abfrageoptimierer fällt es wirklich schwer, Ihre Anweisungen zu optimieren. Etwas ist
falsch; Die Optimierung von Abfragen sollte normalerweise Millisekunden dauern. Möglicherweise haben Sie es nicht gesehen
dieses Muster, wenn Sie Ihre Verbindungen nicht insgesamt betrachtet haben. (Dies ist erfunden
Beispiel, aber es kann im wirklichen Leben passieren).

SCHWENKBAR
innotop kann eine Tabelle schwenken, um eine kompaktere Anzeige zu ermöglichen, ähnlich einer Pivot-Tabelle in einem
Tabellenkalkulation (auch Kreuztabelle genannt). Durch das Pivotieren einer Tabelle werden Spalten zu Zeilen. Annehmen
Sie beginnen mit dieser Tabelle:

Foo-Bar
=== ===
1 3
2 4

Nach dem Pivotieren sieht die Tabelle folgendermaßen aus:

Name set0 set1
==== ==== ====
foo 1 2
Balken 3 4

Um vernünftige Ergebnisse zu erhalten, müssen Sie möglicherweise sowohl eine Gruppierung als auch eine Pivotierung durchführen. innotop aktuell
tut dies für den Modus „S: Variablen & Status“.

FARBEN
Standardmäßig hebt innotop Zeilen farblich hervor, sodass Sie auf einen Blick erkennen können, um welche Zeilen es sich handelt
wichtiger. Sie können die Farbregeln anpassen und Ihre eigenen zu jeder Tabelle hinzufügen.
Öffnen Sie den Tabelleneditor mit der Taste „^“, wählen Sie bei Bedarf eine Tabelle aus und drücken Sie zum Öffnen „o“.
Der Farbeditor-Dialog.

Im Dialogfeld „Farbeditor“ werden die auf die Tabelle angewendeten Regeln in der Reihenfolge angezeigt, in der sie vorliegen
ausgewertet. Jede Zeile wird anhand jeder Regel ausgewertet, um festzustellen, ob die Regel mit der Zeile übereinstimmt. Wenn
Ist dies der Fall, erhält die Zeile die angegebene Farbe und es werden keine weiteren Regeln ausgewertet. Die Regeln
sehen wie folgt aus:

state eq Locked black on_red
cmd eq Ruhezustand weiß
Benutzer EQ-System Benutzer weiß
cmd eq Verbinden weiß
cmd eq Binlog Dump weiß
Zeit > 600 rot
Zeit > 120 Gelb
Zeit > 60 Grün
Zeit > 30 Cyan

Dies ist der Standardregelsatz für die Tabelle „processlist“. Diese sind in der Reihenfolge ihrer Priorität aufgeführt
Regeln machen gesperrte Abfragen schwarz auf rotem Hintergrund und „grauen“ Verbindungen ab
Replikation und ruhende Abfragen und stellen Sie sicher, dass Abfragen während der Ausführung von Cyan auf Rot wechseln
länger.

(Aus irgendeinem Grund ist der ANSI-Farbcode „Weiß“ eigentlich ein helles Grau. Der Ihres Terminals
Darstellung kann variieren; experimentieren Sie, um die Farben zu finden, die Ihnen gefallen).

Sie können die Regeln per Tastendruck nach oben oder unten verschieben und so ihre Priorität neu ordnen. Du
Sie können auch Regeln löschen und neue hinzufügen. Wenn Sie eine neue Regel hinzufügen, werden Sie von innotop dazu aufgefordert
die Spalte, ein Operator für den Vergleich, ein Wert, mit dem die Spalte verglichen werden soll,
und eine Farbe, die zugewiesen werden soll, wenn die Regel zutrifft. Es gibt jeweils eine automatische Vervollständigung und Eingabeaufforderung
Schritt.

Der Wert im dritten Schritt muss korrekt angegeben werden. innotop versucht nicht zu zitieren
den Wert, weil er nicht weiß, ob er den Wert als Zeichenfolge oder als a behandeln soll
Nummer. Wenn Sie die Spalte mit einer Zeichenfolge vergleichen möchten, wie zum Beispiel im ersten
In der obigen Regel sollten Sie „Gesperrt“ in Anführungszeichen eingeben. Wenn Sie eine Fehlermeldung erhalten
Wenn es um ein bloßes Wort geht, hätten Sie wahrscheinlich etwas zitieren sollen.

AUSDRÜCKE
Ausdrücke sind das Herzstück der Funktionsweise von innotop und ermöglichen die Erweiterung
innotop nach Ihren Wünschen. Erinnern Sie sich an den Tabellenlebenszyklus, der in „TABELLEN“ erläutert wird. Ausdrücke sind
Wird im frühesten Schritt verwendet, wo Werte aus einer Datenquelle extrahiert werden, um Zeilen zu bilden.

Dazu ruft es für jede Spalte eine Unterroutine auf und übergibt ihr den Quelldatensatz a
eine Reihe aktueller Werte und eine Reihe früherer Werte. Diese werden alle benötigt, also die
Die Unterroutine kann Dinge wie die Differenz zwischen diesem Tick und dem vorherigen berechnen
Tick.

Die Unterprogramme, die die Daten aus der Menge extrahieren, werden aus Ausdrücken kompiliert. Das
bietet deutlich mehr Möglichkeiten, als nur die Werte zum Füllen der Spalten zu benennen, weil es
ermöglicht die Berechnung des Spaltenwerts aus allen erforderlichen Daten, vermeidet jedoch dies
Sie müssen komplizierten und langen Perl-Code schreiben.

innotop beginnt mit einer Textzeichenfolge, die so einfach wie der Name eines Werts oder wie aussehen kann
kompliziert wie ein vollwertiger Perl-Ausdruck. Es betrachtet jedes „Bareword“-Token im
string und entscheidet, ob es ein Schlüssel in den $set-Hash sein soll. Ein bloßes Wort ist ein
Wert ohne Anführungszeichen, der nicht bereits von codeähnlichen Dingen wie Dollarzeichen oder geschweiften Zeichen umgeben ist
Klammern. Wenn innotop entscheidet, dass das Bareword keine Funktion oder anderer gültiger Perl-Code ist,
es wandelt es in einen Hash-Zugriff um. Nachdem der gesamte String verarbeitet wurde, kompiliert innotop
eine Unterroutine, etwa so:

sub compute_column_value {
my ( $set, $cur, $pre ) = @_;
my $val = # ERWEITERTER STRING GEHT HIER
return $val;
}

Hier ist ein konkretes Beispiel, entnommen aus der Header-Tabelle „q_header“ im Modus „Q: Query List“.
Dieser Ausdruck berechnet die Werte der Spalte qps (Abfragen pro Sekunde) aus dem
Von SHOW STATUS zurückgegebene Werte:

Fragen/Uptime_hires

innotop entscheidet, dass es sich bei beiden Wörtern um bloße Wörter handelt, und wandelt diesen Ausdruck in das um
folgenden Perl-Code:

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

Wenn es vom restlichen Code der Unterroutine umgeben ist, handelt es sich um eine ausführbare Perl-Datei
berechnet einen hochauflösenden Abfragewert pro Sekunde.

Die Argumente der Unterroutine heißen $set, $cur und $pre. In den meisten Fällen sind $set und
$cur wird die gleichen Werte haben. Wenn jedoch „status_inc“ festgelegt ist, ist $cur nicht dasselbe
als $set, da $set bereits Werte enthält, die die inkrementelle Differenz darstellen
zwischen $cur und $pre.

Jede Spalte in innotop wird durch auf die gleiche Weise kompilierte Unterroutinen berechnet. Es gibt
Kein Unterschied zwischen den integrierten Spalten von innotop und den benutzerdefinierten Spalten. Das hält
Dinge konsistent und vorhersehbar.

TRANSFORMATIONEN
Transformationen ändern die Art und Weise, wie ein Wert gerendert wird. Sie können zum Beispiel mehrere nehmen
Sekunden und zeigen Sie es im H:M:S-Format an. Folgende Transformationen sind definiert:

kommunizieren
Fügt großen Zahlen alle drei Dezimalstellen Kommas hinzu.

dulint_to_int
Akzeptiert zwei vorzeichenlose Ganzzahlen und wandelt sie in eine einzelne Longlong-Zahl um. Das ist
nützlich für bestimmte Vorgänge mit InnoDB, das zwei Ganzzahlen als Transaktion verwendet
Identifikatoren, zum Beispiel.

no_ctrl_char
Entfernt Steuerzeichen in Anführungszeichen aus dem Wert. Dies wird durch den „Charset“ beeinflusst.
variable Konfiguration.

Diese Transformation funktioniert nur innerhalb von Zeichenfolgen in Anführungszeichen, beispielsweise Werten in einem SET
-Klausel in einer UPDATE-Anweisung. Die UPDATE-Anweisung wird dadurch nicht geändert, aber schon
Reduzieren Sie die in Anführungszeichen gesetzte Zeichenfolge je nach Zeichensatz auf [BINARY] oder [TEXT].

Prozent
Wandelt eine Zahl in einen Prozentsatz um, indem sie mit zwei multipliziert und mit formatiert wird
„num_digits“ Ziffern nach dem Dezimalpunkt und optional das Hinzufügen eines Prozentzeichens (siehe
„show_percent“).

secs_to_time
Formatiert eine Anzahl von Sekunden als Zeit im Format Tage+Stunden:Minuten:Sekunden.

set_precision
Formatiert Zahlen mit der Anzahl der Nachkommastellen „num_digits“.

verkürzen
Formatiert eine Zahl als Einheit von 1024 (k/M/G/T) und mit der Anzahl der Ziffern „num_digits“.
nach dem Komma.

TABELLE EDITOR
Mit dem innotop-Tabelleneditor können Sie Tabellen per Tastendruck anpassen. Sie starten den Tisch
Editor mit der Taste „^“. Wenn mehr als eine Tabelle auf dem Bildschirm angezeigt wird, werden Sie dazu aufgefordert
eine davon auszuwählen. Sobald Sie dies getan haben, zeigt Ihnen innotop etwa Folgendes an:

Bearbeiten der Tabellendefinition für den Pufferpool. Drücken Sie ? um Hilfe, q zum Beenden.

Name HDR-Label SRC
cxn CXN Verbindung, von der cxn
buf_pool_size Größe Pufferpoolgröße IB_bp_buf_poo
buf_free Freie Bufs Puffer im b IB_bp_buf_fre frei
seiten_total Seiten Seiten insgesamt IB_bp_pages_t
Pages_modified Dirty Pages Geänderte Seiten (dirty IB_bp_pages_m
buf_pool_hit_rate Trefferrate Pufferpool-Trefferrate IB_bp_buf_poo
total_mem_alloc Memory Gesamtspeicherzuweisung IB_bp_total_m
add_pool_alloc Add'l Pool Zusätzliche Poolzuweisung IB_bp_add_poo

Die erste Zeile zeigt an, welche Tabelle Sie bearbeiten, und erinnert Sie erneut daran, „?“ zu drücken. Für ein
Liste der Schlüsselzuordnungen. Der Rest ist eine tabellarische Darstellung der Tabellenspalten.
denn das ist wahrscheinlich das, was Sie bearbeiten möchten. Sie können jedoch mehr als nur bearbeiten
die Spalten der Tabelle; Auf diesem Bildschirm können Sie den Filtereditor, den Farbregeleditor und mehr starten.

Jede Zeile in der Anzeige zeigt eine einzelne Spalte in der Tabelle, die Sie bearbeiten, zusammen mit einer
einige seiner Eigenschaften wie Header und Quellausdruck (siehe „AUSDRÜCKE“).

Die Tastenzuordnungen sind wie an vielen anderen Stellen im Vim-Stil. Durch Drücken von „j“ und „k“ wird die verschoben
Hervorheben nach oben oder unten. Anschließend können Sie die markierte Spalte (d)löschen oder (e)bearbeiten. Du kannst
Fügen Sie der Tabelle auch eine Spalte hinzu. Dadurch wird eigentlich nur eine der Spalten aktiviert
für die Tabelle definiert; Sie werden aufgefordert, aus den verfügbaren Spalten auszuwählen, dies ist jedoch nicht der Fall
aktuell angezeigt. Abschließend können Sie die Spalten mit den Tasten „+“ und „-“ neu anordnen.

Mit dem Tabelleneditor können Sie nicht nur die Spalten bearbeiten, sondern auch andere
Eigenschaften wie den Sortierausdruck und den Gruppierungsausdruck der Tabelle. Drücken Sie '?' um zu sehen
natürlich die vollständige Liste.

Wenn Sie Ihre eigene Spalte wirklich anpassen und erstellen möchten, anstatt sie nur zu aktivieren
Wenn Sie eine integrierte Version auswählen möchten, die derzeit nicht angezeigt wird, drücken Sie die Taste (n)ew, und innotop wird dies tun
fordert Sie auf, die benötigten Informationen einzugeben:

· Der Spaltenname: Dies muss ein Wort ohne lustige Zeichen sein, z. B. nur
Buchstaben, Zahlen und Unterstriche.

· Der Spaltenkopf: Dies ist die Beschriftung, die oben in der Spalte angezeigt wird
Tabellenkopf. Dies kann Leerzeichen und lustige Zeichen enthalten, aber achten Sie darauf, dass Sie keine Leerzeichen machen
Es ist zu breit und verschwendet Platz auf dem Bildschirm.

· Die Datenquelle der Spalte: Dies ist ein Ausdruck, der bestimmt, welche Daten aus der Spalte stammen
Quelle (siehe „TABELLEN“) wird innotop in die Spalte eintragen. Dies kann nur der Name sein
ein Element in der Quelle, oder es kann ein komplexerer Ausdruck sein, wie in beschrieben
„AUSDRÜCKE“.

Sobald Sie die erforderlichen Daten eingegeben haben, erhält Ihre Tabelle eine neue Spalte. Es gibt kein
Unterschied zwischen dieser Spalte und den integrierten; es kann alle die gleichen Eigenschaften haben
und Verhaltensweisen. innotop schreibt die Definition der Spalte in die Konfigurationsdatei
Es bleibt sitzungsübergreifend bestehen.

Hier ist ein Beispiel: Angenommen, Sie möchten verfolgen, wie oft Ihre Slaves es erneut versucht haben
Transaktionen. Laut MySQL-Handbuch der Slave_retried_transactions-Status
Variable gibt Ihnen diese Daten: „Die Gesamtzahl der Male seit dem Start, dass die
Der Replikations-Slave-SQL-Thread hat Transaktionen wiederholt. Diese Variable wurde in Version hinzugefügt
5.0.4.“ Dies ist geeignet, der Tabelle „slave_sql_status“ hinzugefügt zu werden.

Um die Spalte hinzuzufügen, wechseln Sie mit der Taste „M“ in den Replikationsüberwachungsmodus und drücken Sie
die Taste „^“, um den Tabelleneditor zu starten. Wenn Sie dazu aufgefordert werden, wählen Sie „slave_sql_status“ als aus
Tabelle aus und drücken Sie dann „n“, um die Spalte zu erstellen. Geben Sie „Retries“ als Spaltennamen ein, „Retries“
als Spaltenüberschrift und „Slave_retried_transactions“ als Quelle. Jetzt ist die Kolumne
erstellt, und Sie sehen erneut den Tabelleneditorbildschirm. Drücken Sie „q“, um den Tabelleneditor zu verlassen.
und Sie sehen Ihre Spalte am Ende der Tabelle.

VARIABLE SETS


Variablensätze werden im Modus „S: Variablen & Status“ verwendet, um einfacher zu definieren, was
Variablen, die Sie überwachen möchten. Hinter den Kulissen werden sie zu einer Liste zusammengestellt
Ausdrücke und dann in eine Spaltenliste, sodass sie wie Spalten in jedem anderen behandelt werden können
andere Tabelle im Hinblick auf Datenextraktion und -transformationen. Sie sind jedoch geschützt
von den mühsamen Details durch eine Syntax, die sich für Sie sehr natürlich anfühlen sollte: ein SQL SELECT
Liste.

Die Datenquelle für Variablensätze und tatsächlich für den gesamten S-Modus ist die Kombination von
STATUS ANZEIGEN, VARIABLEN ANZEIGEN und INNODB-STATUS ANZEIGEN. Stellen Sie sich vor, Sie hätten einen riesigen Tisch
mit einer Spalte pro Variable, die von diesen Anweisungen zurückgegeben wird. Das ist die Datenquelle für
Variablensätze. Sie können diese Datenquelle jetzt wie erwartet abfragen. Zum Beispiel:

Fragen, Verfügbarkeit, Fragen/Verfügbarkeit als QPS

Hinter den Kulissen wird innotop diesen Variablensatz in drei Ausdrücke aufteilen und kompilieren
kopieren, in eine Tabellendefinition umwandeln und dann wie gewohnt extrahieren. Dies wird zu einem
„Variablensatz“ oder eine „Liste der Variablen, die Sie überwachen möchten“.

innotop bietet Ihnen die Möglichkeit, Ihre Variablensätze zu benennen, zu speichern und in die Konfiguration zu schreiben
Datei. Sie können mit der Taste „c“ auswählen, welchen Variablensatz Sie sehen möchten, oder den aktivieren
Nächste und vorherige Sätze mit den Tasten „>“ und „<“. Es gibt viele integrierte Variablensätze
Dies sollte Ihnen einen guten Ausgangspunkt für die Erstellung Ihrer eigenen geben. Drücken Sie „e“, um das zu bearbeiten
aktuellen Variablensatz anzuzeigen oder einfach nur zu sehen, wie er definiert ist. Um ein neues zu erstellen, drücken Sie einfach
'c' und geben Sie den Namen ein.

Möglicherweise möchten Sie einige der unter „TRANSFORMATIONEN“ aufgeführten Funktionen verwenden, um die Formatierung zu erleichtern
Ergebnisse. Insbesondere „set_precision“ ist oft nützlich, um die Anzahl der Ziffern zu begrenzen
sehen. Um das obige Beispiel zu erweitern, gehen Sie wie folgt vor:

Fragen, Betriebszeit, set_precision(Fragen/Betriebszeit) als QPS

Eigentlich ist hier noch etwas Arbeit nötig. Wenn Ihr „Intervall“ kleiner als eins ist
Zweitens dividieren Sie möglicherweise durch Null, da die Betriebszeit in diesem Modus inkrementell ist
Standard. Verwenden Sie stattdessen Uptime_hires:

Fragen, Betriebszeit, set_precision(Questions/Uptime_hires) als QPS

Dieses Beispiel ist einfach, zeigt aber, wie einfach es ist, die gewünschten Variablen auszuwählen
Monitor.

PLUGINS


innotop verfügt über einen einfachen, aber leistungsstarken Plugin-Mechanismus, mit dem Sie es erweitern oder ändern können
bestehende Funktionalität erweitern und neue Funktionalität hinzufügen. Die Plugin-Funktionalität von innotop ist
Ereignisbasiert: Plugins registrieren sich selbst, um aufgerufen zu werden, wenn Ereignisse eintreten. Das haben sie dann
eine Chance, Einfluss auf die Veranstaltung zu nehmen.

Ein innotop-Plugin ist ein Perl-Modul, das im Verzeichnis „plugin_dir“ von innotop abgelegt wird. Unter UNIX
Systeme können Sie einen symbolischen Link zum Modul platzieren, anstatt die eigentliche Datei abzulegen
Dort. innotop erkennt die Datei automatisch. Sofern ein entsprechender Eintrag vorhanden ist
Im Abschnitt „Plugins“ der Konfigurationsdatei lädt innotop das Plugin und aktiviert es.

Das Modul muss der Plugin-Schnittstelle von innotop entsprechen. Darüber hinaus ist der Quellcode von
Das Modul muss so geschrieben sein, dass innotop die Datei prüfen und feststellen kann
der Paketname und die Beschreibung.

Paket Quelle Convention
innotop überprüft die Quelle des Plugin-Moduls, um den Perl-Paketnamen zu ermitteln. Es sieht aus
für eine Zeile der Form „package Foo;“ und wenn es gefunden wird, berücksichtigt es den Paketnamen des Plugins
Sei Foo. Natürlich kann der Paketname ein gültiger Perl-Paketname sein, mit double
Semikolons und so weiter.

Außerdem wird nach einer Beschreibung im Quellcode gesucht, um den Plugin-Editor benutzerfreundlicher zu gestalten.
freundlich. Die Beschreibung ist eine Kommentarzeile der Form „# Beschreibung: Foo“, wobei „Foo“
ist der Text, den Innotop als Beschreibung des Plugins betrachtet.

Plugin Schnittstelle
Die Schnittstelle des innotop-Plugins ist recht einfach: innotop erwartet, dass das Plugin ein Objekt ist.
orientiertes Modul, auf dem bestimmte Methoden aufgerufen werden können. Die Methoden sind

neu(%Variablen)
Dies ist der Konstruktor des Plugins. Es wird ein Hash der innotop-Variablen übergeben, der
es kann manipulieren (siehe „Plugin-Variablen“). Es muss einen Verweis auf das neue zurückgeben
erstelltes Plugin-Objekt.

Zur Erstellungszeit hat innotop lediglich die allgemeine Konfiguration geladen und erstellt
die standardmäßig integrierten Variablen mit ihren Standardinhalten (was eine ganze Menge ist).
Daher entspricht der Zustand des Programms genau dem im innotop-Quellcode, zuzüglich der
Konfigurationsvariablen aus dem Abschnitt „allgemein“ in der Konfigurationsdatei.

Wenn Ihr Plugin die Variablen manipuliert, ändert es globale Daten, die gemeinsam genutzt werden
von innotop und allen Plugins. Plugins werden in der Reihenfolge geladen, in der sie aufgelistet sind
Konfigurationsdatei. Ihr Plugin wird möglicherweise vor oder nach einem anderen Plugin geladen, daher gibt es ein
Potenzial für Konflikte oder Interaktionen zwischen Plugins, wenn sie andere Daten ändern
Plugins verwenden oder ändern.

register_for_events()
Diese Methode muss gegebenenfalls eine Liste von Ereignissen zurückgeben, an denen das Plugin interessiert ist.
Die definierten Ereignisse finden Sie unter „Plugin-Ereignisse“. Wenn das Plugin ein Ereignis zurückgibt, ist das nicht der Fall
definiert ist, wird das Ereignis ignoriert.

Eventhandler
Das Plugin muss eine Methode implementieren, die denselben Namen hat wie jedes Ereignis, für das es vorhanden ist
Eingetragen. Mit anderen Worten, wenn das Plugin qw(foo bar) von zurückgibt
register_for_events(), es muss haben foo () und Bar() Methoden. Diese Methoden sind
Rückrufe zu den Veranstaltungen. Weitere Einzelheiten zu den einzelnen Ereignissen finden Sie unter „Plugin-Ereignisse“.

Plugin Variablen
Dem Konstruktor des Plugins wird ein Hash der innotop-Variablen übergeben, den er manipulieren kann.
Es ist wahrscheinlich eine gute Idee, wenn das Plugin-Objekt eine Kopie davon zur späteren Verwendung speichert. Der
Variablen werden in der Innotop-Variablen %pluggable_vars definiert und lauten wie folgt:

action_for
Ein Hashref von Schlüsselzuordnungen. Dies sind die globalen Hotkeys von innotop.

agg_funcs
Ein Hashref von Funktionen, die zum Gruppieren verwendet werden können. Siehe „GRUPPE“.

Config
Der globale Konfigurations-Hash.

Verbindungen
Ein Hashref von Verbindungsspezifikationen. Dabei handelt es sich lediglich um Vorgaben zur Vorgehensweise
mit einem Server verbinden.

dbhs
Ein Hashref der Datenbankverbindungen von innotop. Dies sind tatsächliche DBI-Verbindungsobjekte.

Filter
Ein Hashref von Filtern, die auf Tabellenzeilen angewendet werden. Weitere Informationen finden Sie unter „FILTER“.

Modi
Ein Hashref von Modi. Weitere Informationen finden Sie unter „MODI“.

server_groups
Ein Hashref von Servergruppen. Siehe „SERVERGRUPPEN“.

tbl_meta
Ein Hashref der Tabellenmetadaten von innotop mit einem Eintrag pro Tabelle (siehe „TABELLEN“ für).
Mehr Informationen).

trans_funcs
Ein Hashref von Transformationsfunktionen. Siehe „TRANSFORMATIONEN“.

var_sets
Ein Hashref von Variablensätzen. Siehe „VARIABLEN-SÄTZE“.

Plugin Events
Jedes Ereignis ist irgendwo im innotop-Quellcode definiert. Wenn innotop diesen Code ausführt,
Es führt die Rückruffunktion für jedes Plugin aus, das sein Interesse an dem bekundet hat
Ereignis. innotop übergibt für jedes Ereignis einige Daten. Die Ereignisse werden im definiert
%event_listener_for Variable und lauten wie folgt:

extract_values($set, $cur, $pre, $tbl)
Dieses Ereignis tritt innerhalb der Funktion auf, die Werte aus einer Datenquelle extrahiert. Der
Argumente sind die Wertemenge, die aktuellen Werte, die vorherigen Werte und die
Tabellenname.

set_to_tbl
In diesem Unterprogramm, das für das Drehen zuständig ist, werden an vielen Stellen Ereignisse definiert
eine Arrayref von Hashrefs in eine Arrayref von Zeilen, die auf dem Bildschirm ausgegeben werden können.
Die Ereignisse übergeben alle dieselben Daten: eine Array-Referenz von Zeilen und den Namen der Tabelle
erstellt. Die Ereignisse sind 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($lines)
Dieses Ereignis tritt innerhalb der Subroutine auf, die die Zeilen auf dem Bildschirm ausgibt. $lines
ist ein Arrayref von Strings.

Einfacher Plugin Beispiel
Der einfachste Weg, die Plugin-Funktionalität zu erklären, ist wahrscheinlich ein einfaches Beispiel.
Das folgende Modul fügt am Anfang jeder Tabelle eine Spalte hinzu und setzt ihren Wert auf
1.

Verwenden Sie strenge;
Warnungen verwenden FATAL => 'all';

Paket Innotop::Plugin::Example;
# Beschreibung: Fügt jeder Tabelle eine „Beispiel“-Spalte hinzu

Unter neu {
my ( $class, %vars ) = @_;
# Speichern Sie den Verweis auf die Variablen von innotop in $self
my $self = bless { %vars }, $class;

# Entwerfen Sie die Beispielspalte
mein $col = {
hdr => 'Beispiel',
einfach => '',
dez => 0,
Anzahl => 1,
label => 'Beispiel',
src => 'example', # Daten aus dieser Spalte in der Datenquelle abrufen
tbl => '',
trans => [],
};

# Fügen Sie die Spalte zu jeder Tabelle hinzu.
mein $tbl_meta = $vars{tbl_meta};
foreach my $tbl ( Werte %$tbl_meta ) {
# Fügen Sie die Spalte zur Liste der definierten Spalten hinzu
$tbl->{cols}->{example} = $col;
# Fügen Sie die Spalte zur Liste der sichtbaren Spalten hinzu
unshift @{$tbl->{visible}}, 'example';
}

# Stellen Sie sicher, dass Sie einen Verweis auf das Objekt zurückgeben.
Rückgabe von $selbst;
}

# Ich möchte bitte angerufen werden, wenn ein Datensatz in eine Tabelle gerendert wird.
sub register_for_events {
my ( $self ) = @_;
return qw(set_to_tbl_pre_filter);
}

# Diese Methode wird aufgerufen, wenn das Ereignis ausgelöst wird.
sub set_to_tbl_pre_filter {
my ( $self, $rows, $tbl ) = @_;
# Setzen Sie die Datenquelle der Beispielspalte auf den Wert 1.
foreach my $row ( @$rows ) {
$row->{example} = 1;
}
}

1;

Plugin Herausgeber
Mit dem Plugin-Editor können Sie die von innotop gefundenen Plugins anzeigen und aktivieren bzw. deaktivieren
ihnen. Starten Sie den Editor, indem Sie $ drücken, um den Konfigurationseditor aus einem beliebigen Modus zu starten.
Drücken Sie die Taste „p“, um den Plugin-Editor zu starten. Sie sehen eine Liste der Plugins innotop
entdeckt. Sie können die Tasten „j“ und „k“ verwenden, um die Markierung auf die gewünschte Stelle zu verschieben.
Drücken Sie dann die *-Taste, um es aktiv oder inaktiv umzuschalten. Beenden Sie den Editor und starten Sie innotop neu
damit die Änderungen wirksam werden.

SQL ABSCHLUSS


innotop verwendet einen begrenzten Satz von SQL-Anweisungen, um Daten zur Anzeige von MySQL abzurufen. Der
Anweisungen werden abhängig von der Serverversion, gegen die sie ausgeführt werden, angepasst;
Beispielsweise führt INNODB_STATUS unter MySQL 5 und neuer „SHOW ENGINE INNODB STATUS“ aus.
während es in früheren Versionen „SHOW INNODB STATUS“ ausführt. Die Aussagen lauten wie folgt
folgt:

Anweisung SQL ausgeführt
=================== =============================
INNODB_STATUS SHOW [ENGINE] INNODB STATUS
KILL_CONNECTION TÖTEN
KILL_QUERY KILL QUERY
OPEN_TABLES ZEIGEN OFFENE TABELLEN
PROZESSLISTE VOLLSTÄNDIGE PROZESSLISTE ANZEIGEN
SHOW_MASTER_LOGS MASTER-LOGS ANZEIGEN
SHOW_MASTER_STATUS MASTERSTATUS ANZEIGEN
SHOW_SLAVE_STATUS SLAVE-STATUS ANZEIGEN
SHOW_STATUS [GLOBAL] STATUS ANZEIGEN
SHOW_VARIABLES [GLOBALE] VARIABLEN ANZEIGEN

DATEN QUELLEN


Jedes Mal, wenn innotop Werte extrahiert, um eine Tabelle zu erstellen (siehe „AUSDRÜCKE“ und „TABELLEN“), wird sie
tut dies aus einer bestimmten Datenquelle. Vor allem aufgrund der komplexen Daten, die daraus extrahiert werden
SHOW INNODB STATUS, das ist etwas chaotisch. SHOW INNODB STATUS enthält eine Mischung aus
Einzelwerte und wiederholte Werte, die verschachtelte Datensätze bilden.

Immer wenn innotop Daten von MySQL abruft, fügt es jedem Satz zwei zusätzliche Bits hinzu: cxn und
Uptime_hires. cxn ist der Name der Verbindung, von der die Daten stammen. Uptime_hires
ist eine hochauflösende Version der Uptime-Statusvariablen des Servers, die wichtig ist, wenn
Ihre „Intervall“-Einstellung ist eine Sekunde.

Hier sind die Arten von Datenquellen, aus denen Daten extrahiert werden:

STATUS_VARIABLEN
Dies ist die umfassendste Kategorie, in die die meisten Arten von Daten fallen. Es beginnt mit
die Kombination aus SHOW STATUS und SHOW VARIABLES, es können jedoch auch andere Quellen enthalten sein
nach Bedarf, zum Beispiel SHOW MASTER STATUS und SHOW SLAVE STATUS, sowie viele davon
die nicht wiederholten Werte aus SHOW INNODB STATUS.

DEADLOCK_LOCKS
Diese Daten werden aus der Transaktionsliste im LATEST DETECTED DEADLOCK extrahiert
Abschnitt von SHOW INNODB STATUS. Es ist zwei Ebenen tief verschachtelt: also Transaktionen
Schlösser.

DEADLOCK_TRANSACTIONS
Diese Daten stammen aus der Transaktionsliste im Abschnitt LATEST DETECTED DEADLOCK von SHOW
INNODB-STATUS. Es ist eine Ebene tief verschachtelt.

ERKLÄREN
Diese Daten stammen aus der von EXPLAIN zurückgegebenen Ergebnismenge.

INNODB_TRANSACTIONS
Diese Daten stammen aus dem Abschnitt TRANSACTIONS von SHOW INNODB STATUS.

IO_THREADS
Diese Daten stammen aus der Liste der Threads im Abschnitt FILE I/O von SHOW INNODB
STATUS.

INNODB_LOCKS
Diese Daten stammen aus dem Abschnitt TRANSACTIONS von SHOW INNODB STATUS und sind zweiverschachtelt
Ebenen tief.

OPEN_TABLES
Diese Daten stammen von SHOW OPEN TABLES.

PROZESSLISTE
Diese Daten stammen aus SHOW FULL PROCESSLIST.

OS_WAIT_ARRAY
Diese Daten stammen aus dem SEMAPHORES-Abschnitt von SHOW INNODB STATUS und sind auf einer Ebene verschachtelt
tief. Es kommt aus den Zeilen, die so aussehen:

--Thread 1568861104 hat in btr0cur.c Zeile 424 gewartet ....

MYSQL PRIVILEGIEN


· Sie müssen sich als Benutzer mit der SUPER-Berechtigung für viele davon mit MySQL verbinden
Funktionen.

· Wenn Sie nicht über die SUPER-Berechtigung verfügen, können Sie einige Funktionen zwar ausführen, dies ist jedoch nicht der Fall
unbedingt alle gleichen Daten sehen.

· Sie benötigen die PROCESS-Berechtigung, um die Liste der aktuell ausgeführten Abfragen im Q-Modus anzuzeigen.

· Sie benötigen besondere Berechtigungen, um Slave-Server zu starten und zu stoppen.

· Sie benötigen entsprechende Berechtigungen, um die Deadlock-Tabellen bei Bedarf zu erstellen und zu löschen (siehe
„SERVERVERBINDUNGEN“).

SYSTEM VORAUSSETZUNGEN


Zum Betrieb von innotop benötigen Sie natürlich Perl. Sie benötigen außerdem einige Perl-Module: DBI,
DBD::mysql, Term::ReadKey und Time::HiRes. Diese sollten in den meisten Perl enthalten sein
Falls dies nicht der Fall ist, empfehle ich die Verwendung von Versionen, die mit Ihren Distributionen vertrieben werden
Betriebssystem oder Perl-Distribution, nicht von CPAN. Insbesondere Term::ReadKey hat
Es ist bekannt, dass es Probleme verursacht, wenn es über CPAN installiert wird.

Wenn Sie Term::ANSIColor haben, wird innotop es verwenden, um Header besser lesbar zu formatieren
kompakt. (Unter Microsoft Windows benötigen Sie zusätzlich Win32::Console::ANSI für das Terminal
zu berücksichtigende Formatierungscodes). Wenn Sie Term::ReadLine installieren, vorzugsweise
Term::ReadLine::Gnu, Sie erhalten nette Unterstützung für die automatische Vervollständigung.

Ich verwende innotop auf Gentoo GNU/Linux, Debian und Ubuntu und habe Feedback von Leuten erhalten
Ich habe es erfolgreich auf Red Hat, CentOS, Solaris und Mac OSX ausgeführt. Ich sehe keinen Grund
Warum es auf anderen UNIX-Betriebssystemen nicht funktioniert, weiß ich aber nicht genau. Es auch
läuft unter Windows unter ActivePerl problemlos.

innotop wurde auf den MySQL-Versionen 3.23.58, 4.0.27, 4.1.0, 4.1.22, 5.0.26, 5.1.15 verwendet.
und 5.2.3. Wenn es bei Ihnen nicht korrekt läuft, handelt es sich um einen Fehler, der gemeldet werden sollte.

Nutzen Sie innotop online über die Dienste von onworks.net


Kostenlose Server & Workstations

Laden Sie Windows- und Linux-Apps herunter

Linux-Befehle

Ad