![]() |
![]() |
![]()
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? -------------------- |
|
|
![]() |
![]()
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?
-------------------- |
|
|
![]()
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. -------------------- |
|
|
![]()
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.. |
|
|
![]()
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 ?
|
|
|
![]()
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 -------------------- |
|
|
![]()
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 ![]() 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 ![]() (SHOW VARIABLES z SQL) Ten post edytował Ges 16.11.2009, 18:20:05 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 24.07.2025 - 15:08 |