Mysql rallentamento improvviso, quali cause potenziali?

Alcuni giorni fa mysql è diventato improvvisamente lento con le query che hanno portto più di 10 anni a completare quando completarono sotto i 100 ms … Durava circa un'ora e poi la velocità era di nuovo normale. Cosa potrebbe causare un simile problema?

Alcune ulteriori informazioni: La versione di mysql è 5.0.51a Il database mysql è su una casella dedicata con RAM di 1,5 GB. Non è stato utilizzato alcun swap quando il server mysql era lento.

Ecco il mysqlreport dal database http://pastebin.com/au6yMWqQ Nessuna delle cache sono piene.

Ho notato che il server dns utilizzato dal server per risolvere il nome host è stato un po 'lento a volte ultimamente. Potrebbe avere un impatto?

Grazie

  • Come monitorare e riavviare automaticamente mysql?
  • Accesso phpMyAdmin negato
  • Come posso impedire a un amministratore del server di visualizzare i dati?
  • Ottimizzazione della memory del server VPS
  • Impostazione di un server di produzione per i binari
  • Imansible creare / scrivere nel file '/tmp/#sql_xxxx.MYI' (Errcode: 13)
  • Ottimizza apache / php / mysql in esecuzione su VPS per il carico pesante
  • MySQL InnoDB: come passare al formato Barracuda?
  • 2 Solutions collect form web for “Mysql rallentamento improvviso, quali cause potenziali?”

    Ci sono molti fattori che potrebbero essere la causa di questo.

    Il resolver lento non dovrebbe avere un impatto se è ansible misurare le query da soli. Tuttavia, un resolver lento può avere un effetto quando si connette al server – se gli utenti ottengono accesso in base al nome host da cui si connettono. MySQL ha anche un'opzione per la logging del nome host delle connessioni.

    Il rapporto mysql non dice molto sugli indici. Quello che faccio di solito quando vedo questo accadere è che faccio una delle domande che richiede molto tempo e faccio EXPLAIN su di esso. Se non utilizza alcun indice e deve eseguire una scansione completa della tabella, vorrei vedere se posso aggiungere un indice che lo renderebbe più veloce. Ho visto che gli indici scompaiono per caso prima (qualcuno l'ha cancellata per caso, uno script di aggiornamento lo ha cancellato e non ha ripreso dopo, o simile).

    Il server potrebbe essere sovraccaricato in molti modi:

    • Che cosa dicono le metriche CPU? È bloccato in IOWait, il tempo di sistema, il tempo utente o è in realtà inattivo?
    • A seconda del database, potrebbe essere una cache di query fredda che richiede un po 'di tempo per riscaldarsi dopo un riavvio del server. Questo è improbabile se i dati cambiano molto – ma potrebbe accadere se viene utilizzato principalmente per le ricerche.

    Può anche essere una serie di query che bloccano la tabella – impedendo che le ricerche si verificassero in ~ 10 secondi alla volta. È ansible get informazioni su questo se si registrano query lente a un file.

    Potrebbe essere un errore in MySQL. C'è un onere abbastanza pesante per dimostrarlo, ma succede.

    Hai bisogno di più dati per capire la causa di questo. Hai bisogno di metriche di CPU, memory, metriche MySQL e simili. Posso suggerire uno strumento di monitoraggio come Munin? C'è un ottimo plugin MySQL che ti darà dati interessanti come succede.

    Probabilmente il modo più veloce per get una vera sensazione per ciò che potrebbe essere chewing risorse sul tuo server MySQL è questo semplice command:

     SHOW PROCESSLIST; 

    Ti dirà quali sono i processi MySQL attivi, per quanto tempo sono stati attivi e quali sono. Ogni volta che le cose sono andate con il mio server MySQL, SHOW PROCESSLIST è stata la mia prima linea di 'difesa'.

    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.