![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 20.01.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Mam kilka tysiecy zapisow/odczytow na tabeli. Dysk pracuje bez zarzutów. Co zrobic, by baza dzialala optymalniej? Bo chodzi strasznie wolno... Z gory dziekuje za odpowiedz! |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 254 Pomógł: 10 Dołączył: 8.11.2006 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Sprawdź, czy za każdym jest otwierane nowe połączenie do bazy. Ta operacja jest niestety kosztowna w przypadku postgresa, dlatego warto trzymać cały czas otwarte połączenie.
Pomocnym rozwiązaniem jest tutaj pgpool. Kolejna kwestia to autocommit. Jeżeli robisz po kolei wiele insertów zapakuj je pomiędzy polecenia BEGIN i COMMIT. Daj znać, czy jest poprawa. Zobaczy się co dalej. -------------------- --------------------------------------------------------------------------------
weblog.axent.pl -------------------------------------------------------------------------------- |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 20.01.2009 Ostrzeżenie: (0%) ![]() ![]() |
Sa to pojedyncze uruchamiane pliki php z zapytaniami, tylko tych zapytan jest wiele... ramu 6 GB wolnego 3 procki w 60% wolne...
Zatyka się po przy wiekszym ruchu (liczba procesow apache nie rosnie, ale rosnie liczba procesow bazy) Wyglada jakby byla bariera co do jednoczesnych odczytow/zapisow z tabeli... Naprawde nie wiem co jest :/ EDIT: zwiekszenie o 10% ruchu do bazy prowadzi do tego, ze tworzy się wiele polaczen i kazde stoi Ten post edytował bloker 20.01.2009, 21:51:00 |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 266 Pomógł: 20 Dołączył: 15.11.2006 Skąd: Koszalin Ostrzeżenie: (0%) ![]() ![]() |
Spróbuj użyć funkcji mysql_pconnect.
Otwiera stałe połączenie z bazą. Ten post edytował c3zi 21.01.2009, 09:29:00 -------------------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 20.01.2009 Ostrzeżenie: (0%) ![]() ![]() |
Hmmm... byloby to dosc niestosowne, ponieważ obsługuję dość poważny serwis i statystycznie:
- odwolan do skryptu jest okolo 3/4 mln na godzinę - około 100 UU na sekundę otwierałoby polaczenie z bazą (wiec po chwili mialbym ok 5tys otwartych połączeń) Przy takiej ilości odwołań: procek, dysk, pamięć wszystko działa super... ale baza nie wyrabia. W jaki sposób mogłbym zoptymalizować bazę? |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 266 Pomógł: 20 Dołączył: 15.11.2006 Skąd: Koszalin Ostrzeżenie: (0%) ![]() ![]() |
Przecież mysql_pconnect nie nawiązuje nowego połączenia, jeśli już istnieje. To jest jedna z różnic między mysql_connect.
Dodatkowo przy takiej ilości zapisu/odczytu przeydałby się pożądny dysk. -------------------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 20.01.2009 Ostrzeżenie: (0%) ![]() ![]() |
Wg statystyk dysk zapis/odczyt nie jest obciążony nawet w 2% ... a nie mogę utrzymywać 3000 połączen (isntiejących procesów) - zbyt duże obciązenie systemu (6GB RAMu nie wystarczy
![]() |
|
|
![]() ![]()
Post
#8
|
|
![]() Administrator serwera Grupa: Developerzy Postów: 521 Pomógł: 13 Dołączył: 2.04.2004 Skąd: 52°24' N 16°56' E Ostrzeżenie: (0%) ![]() ![]() |
@bloker:
zajrzyj tutaj i pobaw się tymi ustawieniami ![]() @c3zi: czy ty umiesz czytać ze zrozumieniem? -------------------- Środowisko: Gentoo 2008.0 | Apache | PHP5 | PostgreSQL | MySQL | Postfix
Workstation: Gentoo 2008.0 | Firefox Thomas Alva Edison: "Aby coś wynaleźć wystarczy odrobina wyobraźni i sterta złomu ..." Odpowiedź na każde pytanie typu "Jak ...": "Nie da się, to nie PostgreSQL" |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 254 Pomógł: 10 Dołączył: 8.11.2006 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Jeszcze jedna rzecz przyszła mi do głowy.
Spróbuj wymusić nestedloops - to wolniejszy algorytm łączenia tabel, ale na pewno mniej obciąża zasoby komputera. -------------------- --------------------------------------------------------------------------------
weblog.axent.pl -------------------------------------------------------------------------------- |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 23.06.2025 - 06:59 |