![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 278 Pomógł: 35 Dołączył: 25.06.2010 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Na szybko opiszę problem. Po przeniesieniu się na nowy serwer, na którym mamy limit interpretatorów PHP, okazało się że nasza strona pochłania zbyt dużą ich ilość. Wg administratora problem może sprawiać pewien określony plik, który wyjątkowo długo się wykonuje. Po przeanalizowaniu czasu wykonania się poszczególnych partii kodu tego pliku (który swoją drogą jest skrajnie prosty, bo wykonuje tylko jedno proste zapytanie do bazy), okazało że najwięcej czasu zajmuje linijka tworzenia obiektu PDO:
z reguły jest to czas rzędu 0.01s, ale w przypadku uruchomienia tego pliku jednocześnie w kilku zakładkach, czas potrafi się wydłużyć do kilkunastu sekund... Nie wklejam reszty kodu bo problemem jest tylko ta jedna linijka. Macie pomysł co może powodować tak długie łączenie się z bazą, ewentualnie jak to zoptymalizować? |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Ciezko uwierzec ze to to. Bardziej chodzi o to, ze dalej masz jakies dliugie zapytanie ktore poprostu zamula postgresa i nic dziwnego ze kolejne kody maja problem z polaczeniem
-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 278 Pomógł: 35 Dołączył: 25.06.2010 Ostrzeżenie: (0%) ![]() ![]() |
No właśnie też o tym pierwszym pomyślałem, ale czemu zawsze zawiesza się na tym pliku ?
Jeśli wyciągnę kod z klas i zorganizuję go w jednym pliku, to wygląda to tak:
A więc żadnych wygibasów tu nie ma. Odnośnie jednak zamulania przez jakieś inne zapytanie - jest jakiś sposób żeby rejestrować wykonywane przez bazę zapytania, ich czas wykonania - żeby ewentualnie zlokalizować zapytanie które muli (ale nie na zasadzie pomiaru czasu w metodach które wykonują sql-a, bo to mi zajmie 100 lat ;-) )? |
|
|
![]()
Post
#4
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Zrob
I bedziesz wiedzial czy to przez te jedna linijke czy nie ![]() -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 278 Pomógł: 35 Dołączył: 25.06.2010 Ostrzeżenie: (0%) ![]() ![]() |
Dawałem:
Przykładowy wynik: db_con=12.0043, prepare=0.0022, execute=0.0198, fetch=0.0013 Co do drugiego pytania, to widzę że w postgresie można ustawić log_min_duration_statement() i zapisywać zapytania działające określony czas, ale na hostingu taka opcja niestety odpada, więc szukam dalej ![]() |
|
|
![]()
Post
#6
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Sprawdz prosze jeszcze ten exit. Bedziesz mial pewnosc czy to to czy nie.
-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 278 Pomógł: 35 Dołączył: 25.06.2010 Ostrzeżenie: (0%) ![]() ![]() |
Teraz dla odmiany w ogóle nie mogę wywołać sytuacji w której plik się wykonuje dłużej niż 50ms, czy to z exitem, czy bez niego... No nic, zrobię tak jak mówisz i poszukam po innych zapytaniach.
Dzięki za pomoc ![]() |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
a host to jest po prostu localhost? jeśli tak to zamień to na ip.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.08.2025 - 21:49 |