Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Optymalizacja serwera MySQL, Problemy w wydajnością
korro
post 12.11.2009, 14:24:23
Post #1





Grupa: Zarejestrowani
Postów: 259
Pomógł: 42
Dołączył: 8.04.2005
Skąd: Mława

Ostrzeżenie: (0%)
-----


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?


--------------------
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
Riklaunim
post 12.11.2009, 17:34:01
Post #2





Grupa: Zarejestrowani
Postów: 640
Pomógł: 44
Dołączył: 8.02.2004

Ostrzeżenie: (0%)
-----


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?


--------------------
Biblioteki: Skrypty, CMS | Kurs PHP | Python
Go to the top of the page
+Quote Post
korro
post 12.11.2009, 18:54:56
Post #3





Grupa: Zarejestrowani
Postów: 259
Pomógł: 42
Dołączył: 8.04.2005
Skąd: Mława

Ostrzeżenie: (0%)
-----


Insert poniżej 1kb. Update po id(primary key). Nie robi fullscana.
Wszystko wygląda 'normalnie'.
Selecty chodzą bardzo szybko.


--------------------
Go to the top of the page
+Quote Post
maly_swd
post 12.11.2009, 21:19:30
Post #4





Grupa: Zarejestrowani
Postów: 744
Pomógł: 118
Dołączył: 14.02.2009
Skąd: poziome

Ostrzeżenie: (0%)
-----


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:)

Ten post edytował maly_swd 12.11.2009, 21:20:20


--------------------
śmieszne obrazki
Kryzys: Ser jem spleśniały, wino piję stare i samochód mam bez dachu..
Go to the top of the page
+Quote Post
Ges
post 16.11.2009, 14:24:54
Post #5





Grupa: Zarejestrowani
Postów: 61
Pomógł: 9
Dołączył: 22.02.2008

Ostrzeżenie: (0%)
-----


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 ?
Go to the top of the page
+Quote Post
korro
post 16.11.2009, 14:42:55
Post #6





Grupa: Zarejestrowani
Postów: 259
Pomógł: 42
Dołączył: 8.04.2005
Skąd: Mława

Ostrzeżenie: (0%)
-----


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?

Ten post edytował korro 16.11.2009, 14:50:56


--------------------
Go to the top of the page
+Quote Post
Ges
post 16.11.2009, 18:14:22
Post #7





Grupa: Zarejestrowani
Postów: 61
Pomógł: 9
Dołączył: 22.02.2008

Ostrzeżenie: (0%)
-----


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)

Ten post edytował Ges 16.11.2009, 18:20:05
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 24.07.2025 - 15:08