pierwsze powiedziałbym, prawdopodobnie chcesz aby wyłączyć trwałe połączenia, ponieważ prawie zawsze wyrządzają więcej szkód niż pożytku.
Po drugie, chciałbym powiedzieć, że chcesz dokładnie sprawdzić użytkowników MySQL, aby upewnić się, że nikt nie może łączyć się ze zdalnym serwerem. Jest to również ważna kwestia bezpieczeństwa do sprawdzenia.
Po trzecie, chciałbym włączyć dziennik MySQL Slow Query, aby mieć kontrolę nad zapytaniami wymagającymi długiego czasu, i użyć go, aby upewnić się, że nie masz żadnych zapytań z blokowaniem tabel kluczy również długie.
Kilka innych rzeczy, które można sprawdzić byłoby uruchomić następującą kwerendę, gdy obciążenie procesora jest wysoka:
SHOW PROCESSLIST;
To pokaże jakieś pytania, które są aktualnie uruchomione lub w kolejce do uruchomienia, co się zapytanie jest i co robi (to polecenie skróci zapytanie, jeśli jest zbyt długie, możesz użyć POKAŻ PEŁNĄ LISTĘ PROCESÓW, aby zobaczyć pełny tekst zapytania).
Warto również, aby mieć oko na takie rzeczy jak swoich rozmiarów bufora, table cache, query cache i innodb_buffer_pool_size (jeśli używasz tabel InnoDB), a wszystkie te alokacji pamięci może mieć wpływ na wydajność zapytań, które mogą powodować MySQL do zjedzenia procesora.
Prawdopodobnie będziesz również chciał podać następującą lekturę, ponieważ zawierają one dobre informacje.
Jest to także bardzo dobry pomysł, aby użyć profilera. Coś, co możesz włączyć, kiedy chcesz, pokaże ci, jakie zapytania uruchamia twoja aplikacja, czy są duplikaty zapytań, jak długo trwają, itd. Itd. Przykład czegoś takiego, nad którym pracowałem, PHP Profiler ale jest ich wiele. Jeśli używasz oprogramowania, takiego jak Drupal, Joomla lub Wordpress, będziesz chciał zapytać w obrębie społeczności, ponieważ prawdopodobnie są dostępne dla nich moduły, które umożliwiają uzyskanie tych informacji bez potrzeby ręcznego integrowania czegokolwiek.
Połączenia trwałe są zawsze najbardziej nieodpowiednie. – jason
Zdejmę je teraz i zobaczę różnicę, ponieważ nigdy nie pamiętam, że cpu było ponad 2 miesiąc temu! – Juddling
Serwery mają zazwyczaj więcej niż jeden rdzeń. Procent użycia procesora jest obliczany w odniesieniu do jednego rdzenia, inne słowa proces wykorzystujący maksymalnie dwa rdzenie będzie miał użycie procesora 200%. W tym przypadku MySQL zużywa 100% jednego rdzenia i 60% innego rdzenia. To nie znaczy, że wszystkie procesory są zużyte, najprawdopodobniej nadal ma co najmniej dwa bezpłatne procesory. – xaav