2009-10-01 8 views
9

Come misurare il carico corrente del server MySQL? So che posso misurare cose diverse come l'utilizzo della CPU, l'utilizzo della RAM, l'IO del disco ecc. Ma c'è una misura di carico generica, ad esempio il server è al 40% di carico, ecc.?Come misurare il carico corrente del server MySQL?

risposta

4

con la parte superiore o htop è possibile seguire l'utilizzo in Linux tempo reale

+1

top non mostra l'utilizzo del disco e con i database la maggior parte delle volte l'utilizzo del disco è più importante – NickSoft

13
mysql> SHOW GLOBAL STATUS; 

Trovato here.

+0

credo che il PO vuole una singola misura di carico piuttosto che i dettagli a grana fine fornita dalla query di stato. – whatnick

+0

Questo requisito non è stato richiesto esplicitamente. –

+4

+1 per statistiche dettagliate. –

2

Su sistemi basati su linux, il controllo standard è in genere tempo di attività, un indice di carico viene restituito in base alle metriche descritte here.

8

La nozione di "40% di carico" non è molto ben definita. La tua particolare applicazione potrebbe reagire in modo diverso ai vincoli su risorse diverse. Le applicazioni saranno in genere vincolate da uno dei tre fattori: memoria (fisica) disponibile, tempo CPU disponibile e IO disco.

Su sistemi Linux (o eventualmente altri * NIX), è possibile ottenere un'istantanea di questi con vmstat o iostat (che fornisce maggiori dettagli sull'IO su disco).

Tuttavia, per collegarli a "40% di carico", è necessario comprendere le caratteristiche delle prestazioni del database con carico tipico. Il modo migliore per farlo è quello di testare le query tipiche con quantità variabili di carico, fino a quando non si osservano i tempi di risposta che aumentano drasticamente (questo significa che si è verificato un collo di bottiglia in memoria, CPU o disco). Questo carico dovrebbe essere considerato il tuo livello critico, che non vuoi superare.

1

a parte tutte le buone risposte in questa pagina (SHOW STATUS GLOBAL, vmstat, TOP ...) v'è anche molto semplice da usare scritto da Jeremy Zawodny, è perfetto per gli utenti non amministratori. Si chiama "mytop". more info @http://jeremy.zawodny.com/mysql/mytop/

4

c'è una misura di carico generica, ad esempio il server è al 40% di carico?

Sì! c'è:

SELECT LOAD_FILE("/proc/loadavg") 

Funziona su una macchina Linux. Visualizza le medie del carico del sistema per gli ultimi 1, 5 e 15 minuti.

Il carico medio del sistema è il numero medio di processi in uno stato eseguibile o ininterrotto. Un processo in uno stato eseguibile utilizza la CPU o attende di utilizzare la CPU. Un processo in stato di interruzione è in attesa di qualche accesso I/O, ad esempio in attesa di disco. Le medie sono prese su tre intervalli di tempo. Le medie di carico non sono normalizzate per il numero di CPU in un sistema, quindi un carico medio di 1 significa che un singolo sistema CPU viene caricato tutto il tempo mentre su un sistema a 4 CPU significa che è rimasto inattivo il 75% delle volte.

Quindi, se si desidera normalizzare è necessario contare anche il numero di cpu.

si può fare anche con

SELECT LOAD_FILE("/proc/cpuinfo") 

vedi anche 'uomo proc'

0

Ciao amico come per la mia ricerca abbiamo qualche comando come

  • MYTOP: programma open source scritta usando il linguaggio PERL
  • MTOP: anche un programma open source scritto su PERL, funziona come MYTOP ma monitora le query che richiedono più tempo e le uccide dopo un determinato periodo di tempo.

Link for details of above command

Problemi correlati