Skocz do zawartości
magician

Czy Load Average ok. 6 przy kompilacji php to coś nromalnego?

Polecane posty

Hej,

 

jak w temacie - puściłem na vps kompilację php i load average skoczyło w okolice 6. Czy to jest ok, czy wydajność dysku słaba?

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Cześć, to nie kwestia wydajności dysku a użycia procesora. Podczas tego procesu to procesor jest tzw. "wąskim gardłem". Przy kompilacji kernela uruchom sobie htop czy top i  sprawdź użycie procesora :)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Popatrz na htop i iotop w trakcie kompilowania, zobaczysz co powoduje problemy.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

a na jakim os to stoi   w ogóle ?

czasami nawet jeśli io kuleje (a nie wiemy jakie twój vps ma pod spodem i jak jest obciążone i jak przede wszystkim jest przekazane (multum opcji)) to load ci tego nie pokaże (w zależności od osa)

 

druga sprawa, vcpu, jakie masz cpu zbindowane ? czy mają affinity, respektują numa zone... jaki rodzaj wirtualizacji masz, czy na matce czasem nie ma pożyczania czasu a twoje 4 vcpu w rzeczywistości mielą się na jednym rdzeniu i to HT :)

 

napisz coś więcej o wersji osa i jeśli znasz konfiguracje swojej matki/cpu lub jakieś statsy, czasami paroma testami io/cpu + dmidecode/lspci/lstopo itd.. można się dość dobrze wstrzelić w konfiguracji matki co da ci obraz tego co masz, dodatkowo jakiś histogram wydajności cpu najlepiej z 72h przynajmniej z tygodnia normalnego i wszystko bedziesz wiedziec.

 

 

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Ale jakie to ma znaczenie ? Kompilacja czyli budowanie programu C ze zródeł jest procesem złożonym. Tworzone są rożne pliki w tym biblioteki statyczne, które są później linkowane, wiec CPU idzie na maxa oraz występują liczne odczyty / zapisy na dysk.  Jednak kompilacja jest wykonywana jednorazowo. 

 

Obserwuj load na produkcji przy realnym ruchu, a nie kilkuminutowej kompilacji .
Analogia jest ze spaniem w samochodzie chwilami spalenie dochodzi np do >20 l co nie oznacza, ze tyle pali ;)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Skoro posługujemy sie analogiami , to wolałbyś jeździć mercedesem v8 czy trabantem z dwusuem ?  Wolsiz jeździć autostradą 4 pasmową prawie pustą czy zakorkowaną drogą gminną.

Spalanie się sprawdza na stacji benzynowej - w it w histogramie :)

 

Oczywiście, że vps pod www raczej  z założenia nie jest przewidziany jako node w klastrze kompilera. Natomiast wyniki te można łatwo przeliczyć na realną wydajność później takiego LAMPA, więc jeśli kolega obserwuje kompilacje i widzi to i tamto i wie , że jego aplikacja potrzebuje później tyle i tyle to chyba da mu pewien obraz sytuacji.  Raczej bym się nie obrazał na wyniki kompilacji, dlatego spytałem o dane, bo na ich podstawie mozna dopiero coś odpowiedzieć w temacie czy wynik jest normalny czy nie dla takiej konfiguracji, czy siedzi na kórniku czy normalnym serwerze.

 

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
5 minut temu, servizza napisał:

Skoro posługujemy sie analogiami , to wolałbyś jeździć mercedesem v8 czy trabantem z dwusuem ?  Wolsiz jeździć autostradą 4 pasmową prawie pustą czy zakorkowaną drogą gminną. 

Kompilacja nie służy do testowania wydajności serwera 😀.

 

Kompilacja będzie zużywać dużo zasobów na serwerze zarówno mocnym jak i słabym, a wynik w stylu "Load Average ok. 6" w nic nie mówi o faktycznej kondycji serwera. Jest rzeczą oczywistą, że użycie zasobów w czasie kompilacji duże. Problem by miał jak by mu się kompilacja wywaliła, bo VPS nie dał by rady.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Sugerujesz, że kompilacja to jakiś magiczny proces całkowicie inny w  działaniu  (nie mylić z charakterystyką) niż np. apache czy mysql ?

No to niewątpliwie jakaś nowa informacja dla mnie, możesz rozwinąć lub ewentualnie odesłać do dokumetnacji tych ukrytych wywołan kernela, chętnie poczytam :)

 

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Panowie, dzięki za odpowiedzi. Tak jak wcześniej wspomniałem, nie przemyślałem zapytania 😉 .  Pik był w momencie kompilacji, iowait podczas było niskie (więc zakładam, że wydajność dyskowa jest ok) i zasadniczo po kompilacji wszystko wróciło do normy. Standardowo load tanczy pomiedzy 0,4 do 0,9 z pikami max do 1,5.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Napisano (edytowany)
19 godzin temu, servizza napisał:

Sugerujesz, że kompilacja to jakiś magiczny proces całkowicie inny w  działaniu  (nie mylić z charakterystyką) niż np. apache czy mysql ?

 

Nie to ten sam proces i właśnie dlatego w ustawieniach aplikacji serwerowych jak apache czy mysql masz mnóstwo opcji konfiguracyjnych ograniczających zużycie zasobów jak limit pamięci, połączeń czy czas trwania żeby żeby jeden proces/wątek/wywołanie/użytkownik/błąd w skrypcie nie zeżarł ci z zasobów całego serwera.

 

O ile takich ograniczeń nie wprowadził na proces kompilacji to ten weźmie wszystkie zasoby jakie ma dostępne. Pytanie z rodzaju takich "czy to normalne że przekodowywanie video zajmuje 100% procesora (przynajmniej jednego rdzenia)"? Odpowiedź: tak, to normalne. I nieważne, czy masz procesor 1GHz, 5GHz czy 40Ghz. Kodowanie pójdzie całą parą , tylko na jednym się skończy w godzinę, na drugim w 10 minut, a na trzecim w 10 sekund. Identycznie z kompilacją choć to bardziej skomplikowany proces i daje także po dysku.

 

Jak chce sprawdzić wydajność serwera kompilacją to niech odpali to samo na kilku różnych maszynach i porówna czas zakończenia. A to że podczas kompilacji miał load avarage na poziomie 6 to chyba dobrze świadczy o PHP i kompilatorze, że dobrze wykorzystał wszystkie rdzenie, szczególnie, że (jak z ostatniego wpisu widać) stadardowo load avarage mu skacze pomiędzy 0,6, a 1,5.

Edytowano przez nnd.newbie

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Napisano (edytowany)
Dnia 19.03.2019 o 13:25, servizza napisał:

Sugerujesz, że kompilacja to jakiś magiczny proces całkowicie inny w  działaniu  (nie mylić z charakterystyką) niż np. apache czy mysql ?

No to niewątpliwie jakaś nowa informacja dla mnie, możesz rozwinąć lub ewentualnie odesłać do dokumetnacji tych ukrytych wywołan kernela, chętnie poczytam :)

 

 

Kompilacją nie benchmarkuje się ani CPU and I/O z powodu niejednoznaczności kompilowanych źródeł, użytego kompilatora oraz maści czynników trzecich.

 

Benchmark CPU czy I/O dokonuje się programami do tego służącymi, które używają tych samych kryteriów aby wygenerować sensowny wynik. GCC, który na jednym CPU użyje instrukcji SSE 4.2 żeby przyspieszyć proces translacji kodu źródłowego na binarny, a na drugim AVX2 nie jest obiektywne i w żaden sposób nie przekłada się na rzeczywistą wydajność obydwu maszyn w starciu z np. ilością requestów na sekundę nginxa.

 

Więc nie, jeśli robisz benchmark maszyny przez puszczenie kompilacji php to robisz to źle i nie masz zielonego pojęcia o zasadzie działania benchmarków i czym się różni benchmarkowy test od kodowania wideo, obsługi requestów na socketach czy kompilacji właśnie. Jak chcesz się kurczowo trzymać swojego przykładu z samochodem to w tym momencie stwierdzasz, że samochód który maksymalnie jedzie 200 km/h jest szybszy od tego co ma na liczniku 190 km/h, a to że pierwszy dobija do dwusetki w 5 minut i przejedzie krótszy dystans w ciągu minuty niż drugi, który dobija do 190 km/h w 3 sekundy już całkowicie ignorujesz, bo nie patrzysz na żaden inny współczynnik ani sam fakt, że maksymalna prędkość może nie mieć nic do gadania w sytuacji, gdy test trwa 3 sekundy i nigdy jej nie uświadczysz. I właśnie taką zasadniczą różnicą jest np. wielkość cache L1/L2/L3 w CPU, który w kompilacji odgrywa znacznie większą rolę niż w wykonywaniu kodu już skompilowanego. To, że jedna maszyna radzi sobie lepiej z A nie oznacza, że jednocześnie radzi sobie lepiej z B, i to nawet porównując kompilację dwóch różnych projektów, a co dopiero kompilację z zupełnie innym zadaniem.

Edytowano przez Archi
  • Super! 1

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Dołącz do rozmowy

Możesz pisać i zarejestrować się później. Jeśli masz konto,Zaloguj się teraz, aby publikować na swoim koncie.

Gość
Odpowiedz...

×   Wklejony jako tekst z formatowaniem.   Wklej jako zwykły tekst

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.


  • Kto przegląda   0 użytkowników

    Brak zalogowanych użytkowników przeglądających tę stronę.

×
×
  • Utwórz nowe...

Ważne informacje

Korzystając z forum, wyrażasz zgodę na: Warunki korzystania z serwisu, Regulamin, Polityka prywatności.