Mysql
 sql >> Database >  >> RDS >> Mysql

EC2 Amazon Linux AMI MySQL CPU al 62% quando è inattivo?

L'unica cosa che mi viene in mente è ispezionare cosa sta facendo mysqld usando strace, come utente root:

 strace -p 2959

Normalmente, strace dovrebbe bloccarsi immediatamente e mostrarti una chiamata a select(), perché mysqld dovrebbe essere in attesa di connessioni.

La chiamata dovrebbe essere qualcosa del tipo:

 select(SOCKETNO, [OTHER_FDs], NULL, NULL, NULL)

particolarmente importante è il quarto parametro, che è un timeout di timeout. Se NULL, significa che mysqld dormirà fino a quando qualcuno non si connetterà. Se non NULL, significa che mysqld attenderà il tempo specificato e quindi eseguirà alcuni lavori di manutenzione. Un timeval molto piccolo potrebbe spiegare il consumo della CPU.

Credo che MySQL utilizzi sempre un timeout NULL (infinito). Ha senso ed è così che si stanno comportando i mysqld che sono in grado di raggiungere ora.

Tuttavia, potrebbero esserci alcuni problemi di gestione della connessione che impediscono a select di dormire di nuovo. Controlla se questo comportamento viene visualizzato non appena mysqld viene avviato o dopo che qualcuno si è connesso.