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

Elenco processi MySql pieno di voci del sonno che portano a troppe connessioni?

Fondamentalmente, ottieni connessioni nello stato di sospensione quando :

  • uno script PHP si connette a MySQL
  • alcune query vengono eseguite
  • quindi, lo script PHP fa alcune cose che richiedono tempo
    • senza disconnettersi dal DB
  • e, infine, lo script PHP termina
    • il che significa che si disconnette dal server MySQL

Quindi, generalmente finisci con molti processi in uno stato di sospensione quando hai molti processi PHP che rimangono connessi, senza effettivamente fare nulla sul lato database.

Un'idea di base, quindi:assicurati di non avere processi PHP che vengono eseguiti per troppo tempo o forzali a disconnettersi non appena non hanno più bisogno di accedere al database.


Un'altra cosa, che vedo spesso quando c'è del carico sul server :

  • Ci sono sempre più richieste in arrivo su Apache
    • che significa molte pagine da generare
  • Ogni script PHP, per generare una pagina, si collega al DB e fa delle query
  • Queste query richiedono sempre più tempo, poiché il carico sul server DB aumenta
  • Il che significa che più processi continuano ad accumularsi

Una soluzione che può aiutarti è ridurre il tempo impiegato dalle tue query, ottimizzando quelle più lunghe.