Mam MySQL 5.6.27-0ubuntu0.14.04.1, które działają na instancji Google Compute z 4 procesorami.CPU MySQL wzrasta, gdy mam połączenie Sleeping, które pozostaje otwarte
Zauważyłem, że jeśli mam połączenie przez długi czas z Uśpieniem, to procesor serwera zwiększy się liniowo. Nie rozumiem dlaczego? Jeśli zabiję połączenie Sleep, to CPU po prostu przywróci poprawne użycie.
Więc Podsumowując Mam następujący: zauważam CPU mojego instancji rośnie:
Potem sprawdź processlist na moim serwerze
mysql> show processlist
-> ;
+-------+--------+-------------------+----------------+---------+------+-------+------------------+
| Id | User | Host | db | Command | Time | State | Info |
+-------+--------+-------------------+----------------+---------+------+-------+------------------+
| 85949 | nafora | paper-eee-2:58461 | state_recorder | Sleep | 1300 | | NULL |
| 85956 | nafora | paper-eee-2:58568 | state_recorder | Sleep | 64 | | NULL |
| 85959 | root | localhost | NULL | Query | 0 | init | show processlist |
+-------+--------+-------------------+----------------+---------+------+-------+------------------+
Widać mam tylko 2 połączenie, które Sleep i jeden jest tutaj od 1300 sekund (ponieważ mam proces, który utknął przy otwartym połączeniu)
Więc zabiję połączenie 85949, a procesor po prostu fa w dół.
Czy ktoś może mi wyjaśnić, dlaczego pojedyncze połączenie, które śpi, może mieć wpływ na moją bazę danych w ten sposób.
Dzięki.
Dziwny problem. Czy możesz dodać trochę więcej informacji o systemie? Wersja MySQL? Może InnoDB lub MyISAM? W przypadku wyjścia InnoDB programu 'SHOW ENGINE INNODB STATUS'? Umożliwienie monitorowania może być również przydatne: http://dev.mysql.com/doc/refman/5.0/en/innodb-monitors.html. Jakieś tło na połączeniach? Czy dużo czytali/zapisywali, zanim stali się bezczynni. Czy są autopowiadomieni? itp. –
Powinieneś spróbować dowiedzieć się, co robi ten proces. Może ten artykuł pomaga: https://www.percona.com/blog/2007/02/08/debugging-sleeping-connections-with-mysql/ – fancyPants