Wpis z mikrobloga

Mam apkę #symfony #php, na lokalu strona wyświetlająca wynik złożonej kwerendy odpala się ok. 5 sekund, na produkcji... 30-40 sekund. Ta sama wersja php, ta sama wersja mysql'a, to samo query. Zużycie zasobów serwera oscyluje koło 100MB (z 3GB dostępnych) i bardzo niskim poziomie zużycia procesora.

Co może powodować tak dużą różnicę w wydajności aplikacji?

#programowanie #webdev
  • 38
@Jurix: a dane takie same? zgraj sobie dumpa na locala z produkcji i zobacz czy problem się odtworzy.
Druga sprawa, sprawdź co rzeczywiście tyle trwa - zapytanie czy może rednerowanie?
Trzy - może brakuje np indeksów? porównaj co mówi EXPLAIN na obu maszynach.
@kao3991: Zestaw danych jest identyczny, zgrywałem dane z proda na lokala.
Trwa tyle kwerenda. Wyświetlam tylko 25 rekordów. Sprawdzałem w obu przypadkach zarówno w aplikacji jak i w konsoli/PMA i rezultaty takie same.
Tabele, a więc indeksy mam takie same na obu. Explain jest identyczny na lokalu i na produkcji.
@b0rn2frag: Na produkcji też mam SSD, jak robiłem kiedyś benchmark to przepustowość miałem ponad 400MBps. Nie potrafię znaleźć w linuxie gdzie sprawdzę zużycie dysku, ale to raczej nie jest to.

@mariecziek: Co miałoby cachować dane na poziomie query wpisywanej w terminal? Tak na początku myślałem że to cache, ale testowałem wiele rzeczy i ciągle idzie to 40 sekund, a lokala niezależnie jakbym odświeżał, resetował, to dane mam w mniej niż
@kubako: Tak jak mówiłem wcześniej, tak i dla obu środowisk rezultat jest taki sam.

@Jare_K: W profilerze nie widzę żadnych przydatnych informacji. Moje query, które testowałem też w terminalu wykonuje się długo i tyle. Problem niemal na pewno jest po stronie bazy, nie Symfony.
@kubako: Gdyby query po prostu działało słabo to też bym tak zrobił, ale mnie dziwi różnica w wydajności między niemal identycznymi środowiskami. Jedynie na localu mam windowsa, a na serwerze linux.
@Jurix no tak. Może reinstal mysql jakiś? Ja miałem ostatnio po czystej instalacji jakiś memory leak w apachu. Walczyłem z tym z miesiąc, i dopiero przypadkiem niemal postanowiłem zreinstalowac Apache i problem sam znikanal... ;)
@Jurix: no to obstawiam, że konfiguracja bazy może być inna, a w szczególności pamięć ram na request. Jak jest mniejsza niż na twoim PC to może okazać się, że musi keszować dane przetwarzane na dysku.
@Jare_K: Zgaduję że hosting zwykle nie udostępnia możliwości zmiany takich rzeczy, nie skonfiguruję tego z poziomu php?

@Ponc3k: xdebugiem ani profilerem nie dadzą mi odpowiedzi przy wnioskach do których już doszedłem - coś po stronie mysql'a.
via Wykop Mobilny (Android)
  • 0
@Jurix: oczywiście że Ci dadzą, czas wykonania metod masz na wszystkich krokach, gdybyś uruchomił xdebuga z profilerem to w cachegrind byś zobaczył ze na pdo masz jakieś turbo długie czasy oczekiwania.
Dedukcją dedukcją, ale profilowanie to inna bajka.
@Jurix: jeśli to hosting współdzielony to nie udostępnią opcji na zmianę. Możesz zajrzeć do PHPMyAdmina czy jest opcja cokolwiek zmienić w zmiennych.
@Ponc3k: Ale ja wiem co w kodzie powoduje laga, wykonanie Query. Wiem którego query, odpalałem go z terminala i nic więcej się nie dowiem przy użyciu tych narzędzi.

@Jare_K: Sporo opcji mam odblokowane, jakieś buffery itd. również. Co mnie interesuje z tej konfiguracji?