Skocz do zawartości

Spadek Wydajności Serwera Firebird


klimas7

Rekomendowane odpowiedzi

Witam,

Mam zainstalowany serwer firebird w wersji superserver (2.1.3) z którego domyslnie korzystam na F11(x64) z jadrem 2.6.30.

Bazy danych maja rozmiar ~1GB, pewne zapytanie a konkretnie update przepisujacy jedno pole do drugiego w tej samej tabeli (jest to jeden z przykladów) trwa w tej konfiguracji okolo ~25s.

 

Natomiast kiedy zmienie jadro na 2.6.32 to to samo zapytanie trwa ~6min.

Ogólnie przy przejsciu na nowsze jadro wydajnosc bazy danych spada znaczaco (kazdej operacji nie tylko ww update)

 

Analogiczny spadek wydajnosci zauwazylem przy przejsciu na F13 z jadrem 2.6.34.

 

Jezeli plik bazy umieszcze w pamieci ram to niezaleznie od systemu i wersji jadra te same operacje na bazie trwaja porównywalny czas.

 

System plików jaki jest stosowany to ext4. Test programem bonnie++ daje porównywalne rezultaty.

Potraktowanie bazy gbak'em tez nic nie zmienia.

 

Mak tos jakies pomysly lub sugestie jak to rozwiazac lub w która strone szukac tego rozwiazania.

 

Jeszcze z obserwacji organoleptycznych :)

W pierwszym przypadku dysk pracuje dosyc plynnie i pracuje ,,nieprzerwanie'' proces serwera firebird wykorzystuje procesor (1 rdzen) praktycznie w ~98%.

W drugim przypadku praca dysku jest ,,nerwowa'' a serwer obciaz procesor (1 rdzen) maksymalnie w 40%.

 

pz

B.KLimas

Odnośnik do komentarza
Udostępnij na innych stronach

Witam,

Przepraszam że pisze pod własnym postem ale trzeba pomóc tematowi.

Sprawdziłem opisaną sytuacje na serwerze firebird 2.5 (superserver) sytuacja jest analogiczna jak opisana wcześniej, niezależnie czy serwer instalowany jest z RPM-a czy kompilowany ze źródeł.

(Niestety dokonałem profanacji i sprawdziłem sytuacje na ubuntu 10.xx z jądrem 2.6.32 sytuacja również jest analogiczna).

Zaobserwowałem również że na jądrze >2.6.30 przy wykonywaniu operacji na bazie dosyć dużo zasobów procesora zużywanych jest na "IOWait" (patrz Przeglądarka obciążenia systemu).

 

Z dużą dozą prawdopodobieństwa problemem jest wspomniany wcześniej system plików ext4. Przy nowszym jądrze dla każdego dysku (partycji) z ext4 działają procesy "dziennika" jbd2/sdaX oraz procesy ext4-dio-unwrite.

Na F11 z jądrem 2.6.30 te tych procesów po prostu nie ma. w tym wypadku szybkość odczytu/zapisu przez serwer firebird wynosi ~1800/5000 Kilobajty/s natomiast przy nowszym jądrze prędkości I/O ~300/500 k/s (masakra).

Niestety na dzień dzisiejszy nie mam żadnej partycji ext3 żeby potwierdzić tą hipotezę (ale sprawdzę).

Niestety/stety baza danych przeważnie chce korzystać z bezpośredniego dostępu do dysku.

 

 

Czy ktoś może wie jak zmusić system do tego aby nie uruchamiał procesów jbd2.. i ext4...?

Kombinowanie z różnymi parametrami montowania dysku (opis_parametrów) nie przyniosło oczekiwanych rezultatów.

 

Pz

B.KLimas

 

ps

Mam nadzieje że nie piszę tego tylko dla siebie.

Odnośnik do komentarza
Udostępnij na innych stronach

Witam,

Tak jak przypuszczałem umieszczenie pliku bazy na partycji ext3 pomogło, chociaż nie uważam tego za żadne rozwiązanie.

Według opisu nie powinno być prawie żadnego spadku wydajności, jednak środowisko testowe z tego opisu pozostawia wiele do życzenia.

Dalej otwarte zostaje pytanie jak zamontować partycje ext4 aby działała wydajnie? (czy jest to w ogóle możliwe)

 

pz

B.KLimas

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
×
×
  • Dodaj nową pozycję...