sql >> Databasteknik >  >> RDS >> Mysql

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

Det enda jag kan komma på är att inspektera vad mysqld verkligen gör med strace, som användarrot:

 strace -p 2959

Normalt bör strace blockera omedelbart och visa dig ett anrop till select(), eftersom mysqld borde vänta på anslutningar.

Samtalet bör vara något i stil med:

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

särskilt viktig är den fjärde parametern, som är en timeout-tid. Om NULL betyder det att mysqld kommer att sova tills någon ansluter. Om inte NULL betyder det att mysqld kommer att vänta på den angivna tiden och sedan utföra en del underhållsarbete. En mycket liten tidsperiod kan förklara CPU-förbrukningen.

Jag tror att MySQL alltid använder en NULL (oändlig) timeout. Det är vettigt och det är så här mysqlds jag kan nå nu beter sig.

Det kan dock finnas vissa anslutningshanteringsproblem som hindrar select från att sova igen. Kontrollera om detta beteende visas så snart mysqld startar, eller efter att någon anslutit.



  1. Hur kan jag få främmande nycklar för en tabell i mysql

  2. Aritmetiskt spillfel vid konvertering av numerisk till datatyp numerisk

  3. Få flera kolumner i en enda fråga

  4. Millisekundens upplösning av DateTime i Ruby