Controllare MySQL con Mytop

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.