![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 132 Pomógł: 1 Dołączył: 3.02.2005 Ostrzeżenie: (0%) ![]() ![]() |
Sluchajcie, zapomnijcie o moim pierwszym poscie w tym temacie. Chce ugryzc istote problemu z innej strony
Czy mozecie pomoc w rozszyfrowaniu gdzie leza bledy konfiguracyjne na serwerze VPS? Zrobilem test strony za pomoca serwisu loadimpact.com i juz przy tescie na 20 klientow, strona siada calkowicie, opoznienie wg statystyki wynosi ponad 20s. Co jest nie tak? Serwer ma 512mb ramu. Na VPSsie jest zainstalowany Apache 2.2.3, PHP5, MySQL 5 PHP laczy sie z MySQL poprzez PDO, permanent connection jest wlaczone. Doinstalowalem APC (Alternative PHP cache), ktory zwiekszyl liczbe request per seconds dla strony glownej z 20 do 70. Ustawienia Apache
MaxClients wydaje sie i tak za duzy (wg wzoru, MaxClients = (dostepna pamiec / wielkosc procesu Apache (u mnie kolo 15mb) ) bo powinien byc ustawiony na okolo 30, biorac pod uwage wolne zasoby. Ale i tak zmienianie tej wartosci a takze wylaczenie APC w zasadzie nie zmienia wynikow testu i przy 20 klientach strona siada. Serwer sie nie wiesza, ale opoznienia sa ogromne... strony w zasadzie nie da sie otworzyc podczas testu Co przoczylem? Co jest nie tak? Ten post edytował soska66 27.05.2010, 12:24:00 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 511 Pomógł: 143 Dołączył: 13.03.2010 Skąd: Jasło Ostrzeżenie: (0%) ![]() ![]() |
a nie jest czasem tak że masz gwarantowane 256 mb ram, burstable 512 ? jeżeli nie jest to tajemnica to daj linka do oferty gdzie kupiłeś VPS
Zobacz też w konfiguracje mysql, zobacz co mówi mysqltuner.pl i mysqltuner.pl Podaj też ile masz pamięci zajęte przez system. Ten post edytował jaslanin 27.05.2010, 12:35:18 -------------------- Good luck and happy PHP'ing
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 132 Pomógł: 1 Dołączył: 3.02.2005 Ostrzeżenie: (0%) ![]() ![]() |
a nie jest czasem tak że masz gwarantowane 256 mb ram, burstable 512 ? jeżeli nie jest to tajemnica to daj linka do oferty gdzie kupiłeś VPS Zobacz też w konfiguracje mysql, zobacz co mówi mysqltuner.pl i mysqltuner.pl Podaj też ile masz pamięci zajęte przez system. O zesz .... az mi sie glupio zrobilo. Wlasnie zdalem sobie sprawe, ze ten akurat server jest typu STARTER i ma jedynie 128mb ramu!! Zmylilo mnie to, ze jako zazwyczaj bierzemy o jeden poziom wyzszy VPS, z 512mb ramu, albo jeszcze wieksze. Dlatego z gory zalozylem pojemnosc... no nie dziwie sie, ze tak to wszystko dziala w tej sytuacji ![]() ![]() Natychmiast upgraduje to konto i wtedy wroce do testow BTW: Macie jakies zle doswiadczenia lub porady w kontekscie uzywania APC? Czy uzycie tego modulu moze miec negatywny wplyw na dzialanie strony w kontekscie konsumpcji pamieci? W konifguracji mozna ustawic rozmiar shared memory.. jak to dokladnie dziala... php jest cachowane dla kazdego klienta osobno czy wielu klientow korzysta z jednego zasobu? Ten post edytował soska66 27.05.2010, 13:11:14 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 511 Pomógł: 143 Dołączył: 13.03.2010 Skąd: Jasło Ostrzeżenie: (0%) ![]() ![]() |
1. Czasami problemem jest to że korzystając z cacherów np. APC, PHP jest wykonywane na prawach apache.
2. Czasami jego wady są zaletami, przy włączonym np. przy "apc.stat = false", jak zmienisz plik to cache się nie zaktualizuje ale za to szybciej będzie działało. Przy wordpresie nie można mieć z kolei włączonego "apc.include_once_override" 3. Raczej zużycie pamięci jest mniejsze, bo nie trzeba za każdym razem parsować kodu tylko od razu jest on przetwarzany na op-code. 4. APC cachuje każdy plik osobno, jeżeli 2 klientów używa jednego pliku, to używają jednego zcachowanego pliku (op-code). Odnośnie konfiguracji shared memory można poczytać np. tu: http://www.imminentweb.com/technologies/tu...php-performance Ten post edytował jaslanin 27.05.2010, 14:05:13 -------------------- Good luck and happy PHP'ing
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 132 Pomógł: 1 Dołączył: 3.02.2005 Ostrzeżenie: (0%) ![]() ![]() |
1. Czasami problemem jest to że korzystając z cacherów np. APC, PHP jest wykonywane na prawach apache. 2. Czasami jego wady są zaletami, przy włączonym np. przy "apc.stat = false", jak zmienisz plik to cache się nie zaktualizuje ale za to szybciej będzie działało. Przy wordpresie nie można mieć z kolei włączonego "apc.include_once_override" 3. Raczej zużycie pamięci jest mniejsze, bo nie trzeba za każdym razem parsować kodu tylko od razu jest on przetwarzany na op-code. 4. APC cachuje każdy plik osobno, jeżeli 2 klientów używa jednego pliku, to używają jednego zcachowanego pliku (op-code). Odnośnie konfiguracji shared memory można poczytać np. tu: http://www.imminentweb.com/technologies/tu...php-performance Dzieki za odnosniki i pomoc... poczytam i pobawie sie konfiguracja Takie pytanie, ab pokazuje mi w wynikach testu
Failed request, Length... o co chodzi? Jest jakas wartosc, ktora okresla max wielkosc zapytania? Robie ponowne testy serwera. Upgradowalem go do 1024mb ramu i zainstalowalem APC. Wyglada na to, ze dzieki cachowaniu php, zaleznosc MaxClients od dostepnej pamieci RAM nie jest juz tak scisla jak wychodzi ze wzoru. Ustawilem MaxClients na 200, czyli toretycznie o wiele za duzo niz powinno byc przy okolo 700mb wolnej pamieci, a mimo to, przy tescie na 250 klientow, caly czas pozostaje wolne ponad 200mb ramu. Kilka dni temu robilem test na serwerze z 512mb ram i bez zainstalowanego APC... MaxClients wynosilo 150 - serwer padl calkowicie przy tescie na 100 klientow Ten post edytował soska66 27.05.2010, 17:56:46 |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 511 Pomógł: 143 Dołączył: 13.03.2010 Skąd: Jasło Ostrzeżenie: (0%) ![]() ![]() |
Na początku wyniku masz zapewne coś takiego:
Document Length: 15673 bytes Jeżeli długość żądania różni się od tego wzorcowego to pojawia się ten błąd. -------------------- Good luck and happy PHP'ing
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 132 Pomógł: 1 Dołączył: 3.02.2005 Ostrzeżenie: (0%) ![]() ![]() |
Wrocmy do tego testu wczorajszego co robilem. Jak juz wspomnialem, ugradowalem serwer do 1024 ramu. Zauwazylem tez, ze uzycie APC umozliwia zwiekszenie wartosci MaxClients jako, ze Apache nie zuzywa juz tyle pamieci na parsowanie php. Ustawilem MaxClients na 250 i odpalilem test na 250 klientow - najwieksze opoznienie wynioslo 3 s., serwer dzialal ladnie do konca testu, nie zblizajac sie nawet do ryzyka zawieszenia sie
Dzis juz jednak nie jestem tych ustawien taki pewny... oto dlaczego Zaraz po wgraniu APC i restarcie Apache, system pokazywal okolo 500mb wolnej pamieci. Podczas najwiekszego testu, na 250 klientow (I MaxClients = 250), ilosc wolnej pamieci spadala do 200mb, ale ani razu nie zeszla nizej. Przed chwila sprawdzilem stan pamieci na serwerze, i pokazuje jedynie 130mb, pomimo, ze zaden test nie jest odpalony... W konsekwencji zmniejszylem MaxClients do 120, tak na wszelki wypadek. Bede monitorowal sytuacje ale zastanawia mnie czy przychodzi Ci do glowy jakas pierwsza mysl... skad ten spadek wolnej pamieci przez noc... z 500mb do 130mb |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 511 Pomógł: 143 Dołączył: 13.03.2010 Skąd: Jasło Ostrzeżenie: (0%) ![]() ![]() |
zapewne przez to że najczęściej używane dane znalazły się w cache lub były buforowane np. w moim przypadku jest to tak:
Kod Mem: 4120744k total, 3940064k used, 180680k free, 179952k buffers Swap: 2104440k total, 44k used, 2104396k free, 3084956k cached Być może buffersy Ci tyle zajmują A ogólnie rzecz ujmując to że dużo ramu jest zużywane niekoniecznie jest złe, jeżeli ten ram idzie np. na przechowywanie tabel mysql zamiast na dysku to w pamięci to nie jest to złe. Ten post edytował jaslanin 28.05.2010, 11:14:35 -------------------- Good luck and happy PHP'ing
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 132 Pomógł: 1 Dołączył: 3.02.2005 Ostrzeżenie: (0%) ![]() ![]() |
bede monitorowal sytuacje z pamiecia na przestrzeni dni i co jakis czas zwiekszal MaxClients. Zobaczymy co z tego wyjdzie
Tymczasem, probuje sklecic kilka prostych zdan dla klienta, ktory chce wiedziec ile osob moze jednoczesnie przebywac na stronie. Czy nie rozmijam sie z prawda piszac: Cytat Dokladna liczba nie moze byc oszacowana. W tej chwili Apache akceptuje 120 jednoczesnych polaczen, co oznacza, w prostych slowach, ze gdy 200 osob przeladuje strone w tym samym momencie, 120 z nich zostanie obsluzonych natychmiast, a 80 zostanie wrzuconych w 'kolejke'. Jak dlugo uzytkownik czeka w kolejce zalezy od tego jak szybko serwer potrafi obsluzyc jednego uzytkownika - to zalezy od kliku czynnikow. Oczekiwanie nie powinno to jednak trwac dluzej niz kilka sekund Prosze pamietac, ze zarowno test jak i wartosc MaxClients wskazuje na liczbe uzytkownikow, ktorzy przeladowuja strone w dokladnie tym samym momencie. Nawet gdy na stronie jest 2000 uzytkownikow, wszyscy spedza 95% czasu czytajac strone a tylko okolo 5% czasu na wysylanie zadan (ladowanie podstron) wiec tylko czesc z nich, podejrzewam, ze mniejsza niz 120, bedzie 'klikac' w tym samym dokladnie momencie Sorki za takie pytanie, ale nigdy nie mialem okazji skladac skrawkow moich informacji na temat dzialania serwera w opis, ktory ma zrozumiec laik Ten post edytował soska66 28.05.2010, 12:24:28 |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 511 Pomógł: 143 Dołączył: 13.03.2010 Skąd: Jasło Ostrzeżenie: (0%) ![]() ![]() |
To jest wartość czysto teoretyczna. Ab test pobiera tylko 1 plik, a jak wiadomo stron to pliki js, obrazki, css, które są osobnymi żądaniami, wymagają one odczytu z dysku/cache. Jeżeli np. strony mają np. komentarze i ludzie je jednocześnie oglądają i wysyłają to też ma znaczenie na wydajności. Zapewne testy wykonywałeś za pomocą polecenia: localhost:80/index.php, przez co nie wiesz jak będzie się to wszystko zachowywało na łączu. Np. wiadomo że jak masz dla VPS łącze 10mbps to przy 120 klientach naraz będziesz miał 85 kbps dla jednego użytkownika, co też da pewny narzut na szybkość działania.
Ja nigdy takich rzeczy nie szacowałem, ale postaram się w wolnym czasie poszukać coś na ten temat. Ten post edytował jaslanin 28.05.2010, 12:57:04 -------------------- Good luck and happy PHP'ing
|
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 132 Pomógł: 1 Dołączył: 3.02.2005 Ostrzeżenie: (0%) ![]() ![]() |
To jest wartość czysto teoretyczna. Ab test pobiera tylko 1 plik, a jak wiadomo stron to pliki js, obrazki, css, które są osobnymi żądaniami, wymagają one odczytu z dysku/cache. Jeżeli np. strony mają np. komentarze i ludzie je jednocześnie oglądają i wysyłają to też ma znaczenie na wydajności. Zapewne testy wykonywałeś za pomocą polecenia: localhost:80/index.php, przez co nie wiesz jak będzie się to wszystko zachowywało na łączu. Np. wiadomo że jak masz dla VPS łącze 10mbps to przy 120 klientach naraz będziesz miał 85 kbps dla jednego użytkownika, co też da pewny narzut na szybkość działania. Ja nigdy takich rzeczy nie szacowałem, ale postaram się w wolnym czasie poszukać coś na ten temat. Testy akurat nie byly robione w AB... tzn byly ale inne ![]() |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 511 Pomógł: 143 Dołączył: 13.03.2010 Skąd: Jasło Ostrzeżenie: (0%) ![]() ![]() |
z tego co doczytałem i zauważyłem ten loadimpact.com symuluje trochę normalnych użytkowników. Czyli raz jest trochę więcej a raz trochę mniej użytkowników. Ale myślę że jeżeli podasz link do tego serwisu Twój tekst to będzie dobrze.
-------------------- Good luck and happy PHP'ing
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 19.07.2025 - 17:09 |