sql >> Databáze >  >> RDS >> Mysql

EC2 Amazon Linux AMI MySQL CPU @ 62 % při nečinnosti?

Jediná věc, která mě napadá, je zkontrolovat, co mysqld skutečně dělá pomocí strace, jako uživatel root:

 strace -p 2959

Normálně by se strace mělo zablokovat okamžitě a ukázat vám volání select(), protože mysqld by měl čekat na připojení.

Volání by mělo být něco jako:

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

zvláště důležitý je čtvrtý parametr, kterým je časový limit. Pokud je NULL, znamená to, že mysqld bude spát, dokud se někdo nepřipojí. Pokud není NULL, znamená to, že mysqld počká zadanou dobu a poté provede nějakou údržbu. Velmi malý časový údaj může vysvětlit spotřebu CPU.

Věřím, že MySQL vždy používá NULL (nekonečný) časový limit. Dává to smysl a takto se chovají mysqlds, na které jsem nyní schopen dosáhnout.

Mohou však nastat problémy se zpracováním připojení, které brání výběru v opětovném spánku. Zkontrolujte, zda se toto chování objeví ihned po spuštění mysqld nebo poté, co se někdo připojí.



  1. Django a PostgreSQL sekvence pro autoinkrementaci primárního klíče

  2. Ruby Datamapper .count vždy vrátí 0

  3. JSP, MySQL a UTF-8

  4. Použití agregačních funkcí v SQL dotazu