Wysokie obci

Konfiguracja serwerów, usług, itp.
ToDoMan
Posty: 4
Rejestracja: 07 czerwca 2013, 21:38

Wysokie obciążenie procesora przez mysqld

Post autor: ToDoMan »

Witam.

Po konfiguracji serwera zauważyłem, iż polecenie

Kod: Zaznacz cały

vmstat
zwraca wartości dla:

Kod: Zaznacz cały

cpu wait rzędu 10-14%
co mnie trochę niepokoi.

Po wyłączeniu usługi mysqld ta wartość spada do zera. Posiadam sporo baz danych i też mam plik konfiguracyjny z panelu DirectAdmin dla takich baz - gotowa konfiguracja dla największych baz. Średnie obciążenie CPU to ~11%, RAM to ~20% a SWAP 0%.

Pytanie jest takie - czy można jakoś sprawdzić, którzy użytkownicy powodują takie obciążenie?
Pozdrawiam!
Awatar użytkownika
Andyk
Beginner
Posty: 125
Rejestracja: 08 listopada 2008, 01:24

Post autor: Andyk »

Jeżeli obciążenie robi mysql to musiałbyś spojrzeć sobie w procesy, która to baza (chyba że masz jakies wykresy dostępne), a następnie włączyć sobie logowanie wszystkich zapytań:

Kod: Zaznacz cały

set global long_query_time=0
I np. przy pomocy mk-query-digest przeanalizować logi, żeby zobaczyć które zapytania mogą powodować obciążenie cpu.
Trzeba mieć jednak trochę wiedzy z mysql'a żeby umieć zinterpretować logi.
ToDoMan
Posty: 4
Rejestracja: 07 czerwca 2013, 21:38

Post autor: ToDoMan »

Witam. Chciałbym odświeżyć temat. Nie mam pojęcia już co robić. Problemem tutaj jest to, iż mysql korzysta za dużo z dysków a nie z pamięci RAM. Kupiłem najszybsze dyski jakie były, SSD, a i tak efekt nie jest zadowalający. Mam takie statystyki z których wynika, że średnio 39% tabel jest tworzonych a dysku. Oto mój /etc/my.cnf - http://wklej.org/hash/0b33cbed530/
Przez te niecałe dwa miesiące próbowałem samemu to zoptymalizować, lecz dało to zerowy efekt. Żadnych zmian w statystykach vmstat. Trochę czasu to zajmuje, ponieważ trzeba odczekiwać 24h zanim na podstawie odczytów będzie można powiedzieć czy te ostatnie zmiany coś dały. Proszę o jakąś pomoc w konfiguracji. Serwer jest używany wyłącznie dla kilku obszernych stron, które mocno bazują na MySQL.
Awatar użytkownika
Andyk
Beginner
Posty: 125
Rejestracja: 08 listopada 2008, 01:24

Post autor: Andyk »

Przecież Ci napisałem co robić. Skorzystaj z narzędzia mk-query-digest i sprawdź sobie zapytania, przyczyną obciążenia są tabele tymczasowe, które tworzone są na dysku. Nikt Ci tutaj tego nie zrobi, bo nie wie co się dzieje w Twojej bazie.
Jeżeli nie jesteś sam w stanie tego zrobić, to potrzebny Ci ktoś kto przeanalizuje Ci logi mysql, wyciągnie z nich zapytania odpowiedzialne za tabele tymczasowe i przerobi je tak żeby nie generowały takiego obciążenia.
Może jak dasz dostęp do logów, to może ktoś Ci coś pomoże. Inaczej to można jedynie wróżyć.
ODPOWIEDZ