MyTop è uno strumento sviluppato in Perl per il monitoraggio dei database MySQL tramite il quale è possibile verificare le prestazioni e capire come le applicazioni interagiscono con il database.
MyTop è presente nei repository Fedora e quindi può essere installato tramite yum.
Se si utilizza Red Hat Enterprise o CentOS, è possibile installare yum tramite il repository di RPMForge.
MyTop richiede nome utente e password per accedere al database, queste informazioni possono essere salvate nel file di configurazione o inserite al prompt dei comandi quando vengono richieste.
Il file di configurazion è ~/.mytop e ha un contenuto simile al seguente.
user=root
#pass=sekret
host=localhost
db=test
#port=3306
socket=/var/lib/mysql/mysql.sock
header=1
color=1
Oltre a nome utente e password, è quindi possibile specificare il database e la porta da utilizzare.
Per avviare MyTop è necessario eseguire il seguente comando.
mytop –prompt
Il risultato del comando è simile al seguente
MySQL on localhost (5.1.44) up 5+20:03:30 [11:56:50]
Queries: 91.3k qps: 0 Slow: 2.0 Se/In/Up/De(%): 01/98/00/00 qps now: 2 Slow qps: 0.0
Threads: 3 ( 2/ 0) 22/00/00/00
Key Efficiency: 93.3% Bps in/out: 43.9/ 9.0 Now in/out: 111.1/ 3.0k
Id User Host/IP DB Time Cmd Query or State
– —- ——- – —- — ———-
193 rq localhost rqp 0 Query show full processlist
195 rq localhost rqp 0 Query SELECT DISTINCT p_tag
Le prime quattro righe contengono informazioni riassuntive relative al server MySQL.
Nella prima riga viene visualizzato il nome del server, la versione di MySQL e il tempo da cui è attivo.
La seconda riga mostra il numero di query elaborate dal server, il numero medio di query al secondo, il numero di query attive e il numero di query lente.
La terza riga mostra informazioni relative ai thread.
La quarta riga mostra quanto spesso le informazioni sono lette dal buffer e non dal disco.
Le righe successive mostrano i thread attivi con informazioni come id, utente, computer da cui proviene la connessione, database e comando eseguito.
MyTop può essere utile per individuare le cause che provacano il rallentamento del database, il limite dell’applicazione è che possibile ottenere informazioni solo da un database alla volta.