Dies ist einer aus einer Reihe von Artikeln zur Verwendung von innotop, einem MySQL- und InnoDB-Monitor. In diesem Artikel werde ich erklären, wie innotop es viel einfacher machen kann, nützliche Informationen von SHOW STATUS
und SHOW VARIABLES
an einem Ort zu sammeln. Es gibt drei Modi in Innotop, die dies auf unterschiedliche Weise tun, sodass einer von ihnen Ihre Anforderungen erfüllen kann.
Einführung
Die Ausgabe von SHOW STATUS
und SHOW VARIABLES
ist eines der nützlichsten Tools zur Fehlerbehebung bei einem MySQL-Server und um ein Gefühl dafür zu bekommen, wie gut er läuft, unter welcher Art von Workload er sich befindet usw. Falls Sie mit diesen nicht vertraut sind, empfehle ich Ihnen, sie im MySQL-Handbuch nachzulesen, bevor Sie den Rest dieses Artikels lesen. Sie werden mehr aus dem Artikel herausholen, wenn Sie verstehen, welche Informationen hinter meinen Beispielen stehen.
Die grundlegendste Methode, um an diese Variablen zu gelangen, besteht darin, einen SHOW
-Befehl auszugeben, aber das Ergebnis ist ziemlich sicher eine Informationsüberlastung, selbst wenn Sie LIKE
verwenden, um die Ergebnisse einzuschränken. Eine andere Sache, die Sie oft wissen müssen, ist, wie sich die Werte im Laufe der Zeit ändern. Wie viele Tabellenscans finden beispielsweise pro Sekunde statt? Es ist schwierig, die Ergebnisse von SHOW
-Befehlen schnell zu vergleichen, aber Sie müssen dies tun, um zu verstehen, was auf dem Server passiert.
Das klassische Werkzeug dafür ist MySQL’s eigenes mysqladmin
. Sie können es mit den Argumenten -i
und -r
ausführen, um es anzuweisen, von Zeit zu Zeit Werte zu drucken und dabei die Differenz zum letzten Wertesatz zu drucken. Ein grundlegender Befehl zum Beobachten von Statusvariablen könnte der folgende sein:
mysqladmin extended -i10 -r
Sie können das durch grep
leiten, um die Ergebnisse auch ein wenig zu filtern.
Es gibt eindeutig viel Raum für Verbesserungen. Ich habe drei verschiedene Möglichkeiten aufgenommen, diese Informationen einfacher und flexibler in innotop anzuzeigen, und ich werde diese als nächstes erläutern.
Methode eins: V-Modus
Bevor wir beginnen: Wenn Sie dies noch nicht getan haben, sollten Sie innotop herunterladen und installieren und diese Beispiele auf Ihrem eigenen Server ausführen. Es ist viel interessanter, wenn Sie sehen, wie Ihr eigener Server läuft. Und wenn Sie nicht auf die neueste und beste Version von innotop aktualisiert, es lohnt sich; es gibt viel mehr Funktionen in jeder neuen Version. Insbesondere werde ich einige Funktionen zeigen, die nur in Version 0.1.139 verfügbar sind.
Okay, auf die guten Sachen. Starten Sie innotop und wechseln Sie mit der Taste „V“ in den V-Modus. V steht für „Variablen und Status.“ Es wird eine Tabelle mit einer Zeile für jeden ausgewählten Wert und einer Spalte für jeden Satz von Werten angezeigt, die Sie anzeigen möchten. Werte können aus allem ausgewählt werden, was Sie in SHOW STATUS
oder SHOW VARIABLES
finden.
Lassen Sie mich das ein bisschen mehr erklären. In der Spalte ganz links wird angezeigt, welche Werte angezeigt werden sollen. Jede Zeile hat einen Wert. Wenn Sie nach rechts gehen, sehen Sie die Werte selbst. Zuerst sehen Sie die aktuellsten Werte, dann die davor und so weiter — bis zur rechten Spalte.
Es gibt ein paar Dinge über diese Anzeige zu beachten:
- Die Anzeige erfolgt inkrementell. Das heißt, ich zeige hier nicht die tatsächlichen Werte an. Ich zeige den Unterschied zwischen Schnappschüssen an. Sie können sehen, dass der Wert
Uptime
in jeder nachfolgenden Spalte um 60 erhöht wird. Das liegt daran, dass ich zwischen den Schnappschüssen eine Ruhezeit von 60 Sekunden gewählt habe. (Normalerweise wähle ichUptime
als ersten Wert, damit ich sehen kann, welcher Zeitbereich angezeigt wird). - Die Spalte ganz rechts ist nicht inkrementell. Das liegt daran, dass es sich um den frühesten Snapshot handelt, den Innotop im Speicher hat. Außerdem möchten Sie nicht immer den Unterschied zwischen Werten kennen. Manchmal möchte man den Wert selbst wissen. Dies gibt Ihnen eine Baseline, so dass Sie sowohl die inkrementellen als auch die absoluten Werte gleichzeitig sehen können.
- Die zweite Zeile der Anzeige, oberhalb der Wertetabelle, zeigt Ihnen die aktuellen Anzeigeoptionen. Sie können sehen, dass inkremental aktiviert ist und der Durchschnitt pro Sekunde deaktiviert ist. Sie können dies mit den Tasten „i“ und „a“ umschalten, sodass Sie sofort zwischen mehreren Ansichten der Daten hin und her wechseln können.
- Die Anzeige für lange Nummern ist eingeschaltet. Sie können es mit der Taste „l“ (das ist ein Kleinbuchstabe „L“) für eine kompaktere Anzeige ein- und ausschalten.
Es ist eine ziemlich kompakte Art, 8 Minuten Geschichte für den Server zu betrachten, würden Sie nicht zustimmen? Sie können leicht viel mehr Informationen von dieser Anzeige erhalten als mit den anderen Methoden, die ich besprochen habe. Aber es gibt noch mehr!
- Ich habe mehrere voreingestellte Werte, die mit innotop angezeigt werden sollen. Mit den Tasten „0“ bis „9“ können Sie zwischen ihnen hin- und herschalten. Es gibt Voreinstellungen für den Abfrage-Cache, Tabellen- und Indexscans, InnoDB-Variablen, Transaktionsanweisungen und mehr. Alles in allem gibt es Platz für zehn Wertesätze.
- Sie können jedes Set mit der Taste „c“ anpassen. Wählen Sie, wie gesagt, einen beliebigen Wert in STATUS und VARIABLEN aus. Dies wird in Ihrer Konfigurationsdatei gespeichert, sodass es dort ist, wenn Sie innotop beenden und neu starten.
- Sie können die Anzahl der Snapshots auswählen, die Sie anzeigen möchten, von 2 bis 9, sodass Sie entscheiden können, wie viel Verlauf Sie auf einem Bildschirm anzeigen möchten.
Methode 2: modelliert nach tload
Eine andere Möglichkeit, diese Variablen zu überwachen, besteht darin, ein Diagramm im Stil von tload
zu zeichnen. Die Theorie hinter diesem Modus ist, dass Sie ein paar Werte auswählen (mit der „c“ -Taste, wie üblich) und innotop wird den Durchschnitt pro Sekunde der Werte gegen das Maximum skalieren, das es je gesehen hat, und das verwenden, um ein hübsches Diagramm zu zeichnen. Mit der Taste „G“ gelangen Sie in den Grafikmodus.
Dies ist nicht ganz so wie tload
, da das Diagramm von oben nach unten und nicht von links nach rechts verläuft. Es druckt regelmäßig einen Header aus, einschließlich des „Maximalwerts“, gegen den es skaliert.
In der Praxis habe ich das noch nicht ganz richtig verstanden. Ich bin mir nicht sicher, wie ich es skalieren soll. Ich habe keine Probleme mit der Mathematik, aber die Skalierung gegen „den jemals gesehenen Maximalwert“ scheint keine guten Ergebnisse zu liefern. Manchmal ergibt es eine schöne Grafik; andere Male nicht. Ich denke immer wieder, dass es eine gute Möglichkeit geben muss, die tatsächliche Serverlast zu berechnen, damit sie sinnvoll grafisch dargestellt werden kann, aber ich kann mir das nicht vorstellen. Irgendwelche Vorschläge?
Ich bin mit diesem Modus nicht sehr zufrieden. Wenn ich keinen Weg finde, es nützlicher zu machen, werde ich diese Funktionalität möglicherweise los, obwohl es nur ein paar Codezeilen sind.
Methode 3: modelliert nach vmstat
Mein Kollege John erwartete, dass das Diagramm nicht so nützlich sein würde, sehr zu seiner Ehre, und fragte mich, ob ich vmstat
und iostat
nachahmen könnte, anstatt ein Diagramm zu zeichnen. Das Ergebnis ist „S“ -Modus. Es kann die gleichen Informationen wie im „G“ -Modus drucken, außer dass Werte anstelle eines Diagramms gedruckt werden.
Ich denke, das ist nützlicher als der „G“ -Modus, obwohl es etwas redundant zu dem „V“ -Modus ist, den ich oben demonstriert habe. Da die Werte über den Bildschirm verteilt sind und die Zeit vom unteren zum oberen Bildschirmrand fließt, können Sie weniger Werte auf dem Bildschirm anpassen, aber Sie können ein längeres Zeitfenster anzeigen.
Zusammenfassung der Modi
Ich habe Ihnen gerade drei Modi gezeigt, mit denen innotop Status- und Variableninformationen von einem MySQL-Server überwachen kann:
- “ V“-Modus druckt eine Tabelle von Snapshots, mit vielen verschiedenen Optionen.
- Der“G“ -Modus versucht, ein Diagramm zu drucken, macht aber nicht immer einen sehr guten Job.
- Der „S“ -Modus druckt etwas Ähnliches wie der „V“ -Modus, aber die Daten sind anders angeordnet.
Die drei Modi sind grundsätzlich verschiedene Möglichkeiten, die gleichen Werte zu betrachten. Es gibt eine gewisse Redundanz unter ihnen, aber da für jeden von ihnen so wenig Code erforderlich ist, ist mir die Redundanz vom Standpunkt der Codierung aus egal. Es macht mir nichts aus, drei Funktionen mit ähnlicher Funktionalität beizubehalten, wenn Sie mehr Möglichkeiten zur Verwendung des Monitors bieten.
Wenn Sie Verbesserungsvorschläge haben, warte ich darauf, von Ihnen zu hören 🙂
Zusammenfassung
In diesem Artikel habe ich die altmodische Art erklärt, die Ausgabe von SHOW STATUS
und SHOW VARIABLES
zu überwachen, und Ihnen dann gezeigt, wie innotop dies viel schneller und einfacher machen kann. und hoffentlich geben Sie genug verschiedene Ansichten über die Daten, die Sie finden können, die Sie mögen.
Bleiben Sie dran, um mehr über innotop zu erfahren; es gibt noch viel mehr zu erzählen! Sie können über Feeds oder E-Mail abonnieren, um auf dem Laufenden zu bleiben.