Wenn Sie den Netzwerkverkehr in und aus MySQL in Ihrer Anwendung direkt messen möchten, können Sie zwei Statusvariablen überwachen:
- Bytes_received : Die Anzahl der von allen Clients empfangenen Bytes
- Bytes_sent : Die Anzahl der an alle Clients gesendeten Bytes
GLOBALE EBENE
Mit dieser Abfrage können Sie diese für alle Sitzungen (Vergangenheit und Gegenwart) abrufen
SELECT * FROM information_schema.global_status
WHERE variable_name IN ('Bytes_received','Bytes_sent');
Dadurch erhalten Sie die Nummer für die Lebensdauer der MySQL-Instanz.
SITZUNGSSTUFE
Sie können diese für jede Sitzung mit abrufen
SELECT * FROM information_schema.session_status
WHERE variable_name IN ('Bytes_received','Bytes_sent');
Auf diese Weise erhalten Sie jeweils die Nummer für die Lebensdauer der DB-Sitzung.
Sie können GUIs verwenden, um sie über die Zeit grafisch darzustellen. Da Sie Java und Tomcat erwähnt haben, möchten Sie möglicherweise Ihre eigene Präsentation erstellen. Sie müssten die vorherigen Werte beibehalten, die aktuellen Werte abrufen, subtrahieren und dann die Durchschnittswerte nach Ihren Wünschen zeichnen oder anzeigen.
Versuche es !!!
VORBEHALT
Ich habe dies vor langer Zeit im DBA StackExchange besprochen ( MySQL: Enthält 'bytes_sent' und 'bytes_received' mysqldump-Daten? ) Alles, was einen Thread hat, wird in diesen beiden Variablen gezählt, einschließlich Interna wie das für MySQL Replication (über die IO-Thread und SQL-Thread).
Stellen Sie vor diesem Hintergrund sicher, dass Sie keine unnötigen DB-Verbindungen haben, die Lesevorgänge ausführen, und dass Sie MySQL während eines mysqldump oder eines erneuten Ladens eines mysqldump nicht überwachen. Selbst Überwachungssoftware (wie Nagios, Zabbix, MONYog, EM7 usw.) generiert bei Bytes_received
jeder Ausführung DatenverkehrSHOW GLOBAL VARIABLES;
VORSCHLAG
Da alles auf mysqld verbunden wird , die globalen Auswirkungen auf Bytes_received
und Bytes_sent
Statuswerte, können Sie Ihre Anwendung haben wollen collect die Session-Ebene Bytes_received
und Bytes_sent
kurz vor dem Lauf mysqli_close () . Anschließend können Sie einen Bericht mit diesen Zahlen erstellen. Sie können diese Summen dann von den globalen Zählungen abziehen, um zu sehen, wie viele Verwaltungsdaten angefordert werden.