Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Optymalizacja serwera MySQL
Forum PHP.pl > Forum > Bazy danych > MySQL
korro
Witam.
Od kilku lat mamy w firmie serwer www. Od niedawna stał się on dość krytyczny z punktu widzenia działa jednego z obszarów firmy.
Do tej pory MySQL obsługiwało głownie selecty. Teraz sytuacja się zmieniła, i jest dość dużo insertów i updateów.

Problem polega na tym, że kiedy mamy w jednym momencie kilka (dosłownie) insertów/updatów, proces MySQL potrafi zjeść 100% czasu procesora.

Te 'górki' na wykresie procesora to właśnie inserty.
Serwer to P4 + 2GB ramu.

Co Waszym zdaniem powoduje takie zachowanie?
Riklaunim
Ile danych (MB, kB) taki insert dodaje, czy update ma więcej warunków WHERE * i czy używa indeksów a nie robi fullscan?
korro
Insert poniżej 1kb. Update po id(primary key). Nie robi fullscana.
Wszystko wygląda 'normalnie'.
Selecty chodzą bardzo szybko.
maly_swd
A duze sa to bazy? Ile zajmuja klucze?
Poniewaz kazdy update generuje na nowo klucze to moze byc problemem.
Wyswietl jeszcze liste zapytan jaka wisi.

*mozesz przydzielic wiecej pamieci na tabele, indexy, bufory itp.. powinno pomoc
wlacz sobie logowanie "dlugich zapytan", wez pozniej takie zapytanie i wstaw explain i zobacz co ono wyrabia:)
Ges
A jak wygląda kwestia logów ? Może te są jakieś przerośnięte i powodują taki stan rzeczy ? masz jakąś wymianę logów po czasie ?
korro
Kombinowałem z przydziałem pamięci, z konfiguracją itp.
Logi nie są przerośnięte, ale to dobre spostrzeżenie, spotkałem się z czymś takim.

Na dzień dzisiejszy wnioskuję, że to problem z dyskami. Hardwareowy.
Serwer chodzi na 'zwykłych' dyskach. Czasy pracy dysku (Seagate w tym przypadku): 34 i 27 tyś. godzin.

Czy według Was to dużo?
Ges
Najlepiej to przejechać te HDD jakimś oprogramowanie do testowania prędkości. To ci pokaże czy jeszcze dają radę :]
Dodatkowo może jakieś narzędzie do monitorowania "zdrowia" tych dysków (z wykorzystaniem S.M.A.R.T.).

Btw. co do logów to poszukałbym szerzej niż logi SQL. Może SQL rzuca jakieś logi wyżej do systemu i tam jest problem.

Z tego co wynika z opisu problemu wygląda jakby coś się przepełniło po 3 latach smile.gif

Moim zdaniem powinnieneś eksport całej bazy na innych system i tam sprobować tych selectow.
Po tym jak już dojdziesz, że problem nie leży w samej bazie, to możesz szukać po systemie.

A jeśli okaże się na bazie danych to też będzie łatwiej szukać problemu.

Jak możesz to wrzuć configa Twojego SQL + config skrzyni na której to stoi, może na coś trafimy smile.gif
(SHOW VARIABLES z SQL)
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.