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

EC2 Amazon Linux AMI MySQL CPU @ 62% når inaktiv?

Det eneste, jeg kan komme i tanke om, er at inspicere, hvad mysqld virkelig laver ved at bruge strace, som brugerrod:

 strace -p 2959

Normalt bør strace blokere med det samme og vise dig et kald til select(), fordi mysqld skulle vente på forbindelser.

Opkaldet skal være noget i stil med:

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

især vigtig er den fjerde parameter, som er en timeout-tidsperiode. Hvis NULL, betyder det, at mysqld vil sove, indtil nogen opretter forbindelse. Hvis ikke NULL, betyder det, at mysqld vil vente på det angivne tidspunkt og derefter udføre noget vedligeholdelsesarbejde. En meget lille tidsperiode kan forklare CPU-forbruget.

Jeg tror, ​​at MySQL altid anvender en NULL (uendelig) timeout. Det giver mening, og det er sådan, de mysqld'er, jeg er i stand til at nå nu, opfører sig.

Der kan dog være nogle forbindelseshåndteringsproblemer, der forhindrer select i at sove igen. Tjek, om denne adfærd vises, så snart mysqld starter, eller efter nogen har oprettet forbindelse.



  1. Konverter MySQL Query til JSON ved hjælp af PHP

  2. Nye funktioner i SQL Server 2017 (Database Engine)

  3. Sådan får du adgang til MySQL fra flere tråde samtidigt

  4. Er 'DISTINCT FROM' en rigtig MySQL-operatør?