Se você quiser medir diretamente o tráfego de rede dentro e fora do MySQL em sua aplicação, existem duas variáveis de status que você pode monitorar:
- Bytes_received : o número de bytes recebidos de todos os clientes
- Bytes_sent : o número de bytes enviados para todos os clientes
NÍVEL MUNDIAL
Você pode buscar essas para todas as sessões (passada e presente) com essa consulta
SELECT * FROM information_schema.global_status
WHERE variable_name IN ('Bytes_received','Bytes_sent');
Isto lhe dará o número de cada um para o tempo de vida da instância mysql.
NÍVEL DE SESSÃO
Você pode buscá-los para cada sessão com
SELECT * FROM information_schema.session_status
WHERE variable_name IN ('Bytes_received','Bytes_sent');
Isso lhe dará o número de cada um para o tempo de vida da sessão do banco de dados.
Você poderia usar GUIs para representá-las ao longo do tempo. Desde que você mencionou Java e Tomcat, você pode querer criar sua própria apresentação. Você teria que manter os valores anteriores, obter os valores atuais, subtraí-los e, em seguida, plotar ou exibir médias como desejar.
Experimente!
CAVEAT
Eu discuti isso no DBA StackExchange há muito tempo ( MySQL: O 'bytes_sent' e 'bytes_received' incluem dados do mysqldump ? ) Qualquer coisa que tenha um thread será contada nessas duas variáveis, incluindo internals como o MySQL Replication (via thread IO e thread SQL).
Em vista disso, certifique-se de não ter conexões DB desnecessárias fazendo leituras e que você não monitore o MySQL durante um mysqldump ou um reload de um mysqldump. Até mesmo software de monitoramento (como Nagios, Zabbix, MONYog, EM7, etc) gerará Bytes_received
de tráfego cada vez que executar SHOW GLOBAL VARIABLES;
SUGESTÃO
Como tudo conectado ao mysqld afetará os valores globais Bytes_received
e Bytes_sent
status, você pode querer que seu aplicativo colete o nível de sessão Bytes_received
e Bytes_sent
antes de executar mysqli_close () . Então, você pode gerar um relatório desses números. Você pode então subtrair esses totais das contagens globais para ver quantos dados de limpeza estão sendo solicitados.