Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [apache] apache benchmark - interpretacja i wnioski z testowania
Forum PHP.pl > Forum > Serwery WWW > Apache
fragles
przypuśćmy jest założenie że w ciągu doby na serwer zostanie wysłane 432000 żądań na dobę co daje 5 żądań na sekundę
jako parametr ab daje -n 432000 -c 5

w wyniku dostałem
- ilość przetransferowanych danych 5207879442 b
- transfer 287.73 kbps
- czas trwania testu 5h 40m

czy można zinterpretować to tak, że serwer (jeśli chodzi o transfer danych) uciągnie (dla okrągłości niech będzie 6h) 4x tyle danych - ja wiem, że do tego dochodzi baza, ale czy rozumowanie jest dobre - skoro tyle żądań zostało obsłużonych (dla łatwiejszego liczenia) w 6h to w 24h można obsłużyć 4x tyle

- serwer łącznie z bazą dał radę obsłużyć prawie 25 (24.94) żądania na sekundę

czy to oznacza, że jeśli chodzi o wydajność liczoną jako ilość obsłużeń na sekundę to serwer może obsłużyć 5x więcej żądań i nic mu się nie stanie - czyli jeśli np max ruch będzie w godzinach 7-20 a jego szczyt będzie 4,5x większy od sredniej to nie ma się co martwić serwer to wytrzyma


jak to scalić (jeśli dobrze interpretuję)
- wg danych można obsłużyć 4x więcej
- wg ilości zapytań na sekundę można obsłużyć 5x więcej

czy brać wartość mniejszą, czy (a na mój rozum może tak być) jeśli będzie się zwiększała ilość danych i ilość żądań to transfer na sekundę będzie spadał i w efekcie wartość maksymalna jest między 4 a 5?

a co w przypadku bardziej zakręconych aplikacji, gdzie będzie coś doczytywane ajaksowo nieregularnie itp itd?

czy w takim przypadku najlepiej zebrać do kupy wszystko co jest - policzyć (np na podstawie zapytań) wartości średnie czy tam medianę i spreparować jakieś specjalne żądanie testowe, które by symulowało aktywność użytkownika na stronie i na tej podstawie coś wnioskować


ostania ważna rzecz to błąd 70007 - gdzieś doczytałem, że wynika z przekroczenia czasu odpowiedzi - OK - ale czy można to interpretować to w ten sposób, że np przy danych wartościach n i c serwer nie uciągnie i przestanie rozmawiać, czyli użytkownik otrzyma jakiś błąd? np nie mam dostępu do konfiguracji bazy czy serwera lub php i nie mogę poustawiać limitów czasowych - jak to wtedy rozumieć takie coś czyli The timeout specified has expired (70007) 7899 requests completed (a w parametrze n było np 10000)
czy to oznacza, że się zrobił zator i żądanie 7900 przegło sprawę i jest po zawodach - dalej serwer nie uciągnie
Zyx
Jeśli w ciągu doby powinno do serwera zostać wysłane 432 000 żądań (5 żądań na sekundę), to test powinien trwać 24 godziny smile.gif. Opcja -c ma zupełnie inne znaczenie, to jest ilość żądań wysyłanych do serwera równocześnie, a nie w ciągu sekundy. Ponadto śmiem twierdzić, że chyba Ci się kompletnie pomieszały wyniki. Cały test trwał 5h40m, a uzyskałeś średni wynik 24,94 req/s wysyłając 432000 żądań - z matematyki wynika, że wysłałeś 508 000 żądań. Na mój gust jest tu pewna sprzeczność smile.gif. Jeśli wyniki pochodzą z jednego testu, to nie mam pojęcia, jak Twój komputer to zrobił - aż sobie przed chwilą poszukałem w sieci kilku zrzutów z ab i wszędzie wartość Requests per second była równa ilości żądań podzielonych przez czas. Nawet możesz to sobie sam policzyć: http://www.modulehosting.com/apache_benchmarks.html
fragles
mniejsza o to, może coś źle skopiowałem
mi zależy na tym, aby ktoś powiedział, czy dobrze to rozczytuje te wyniki czy nie
Zyx
A jak możesz coś dobrze rozczytywać, opierając się na pomieszanych danych? Właśnie rzecz w tym, że nie żadne "mniejsza o to", tylko wyjaśnienie przyczyny tych tajemniczych rozbieżności w zasadzie czyni część Twoich pytań niepotrzebnymi.

Ale zakładając, że w końcu otrzymasz poprawne dane, to w teorii można tak rozumować: jeśli w ciągu 6 godzin dał sobie radę z 432000 żądań, to w przeciągu doby powinien poradzić sobie z czterokrotnie większą ilością. Jednak przydatność tego rozumowania musisz ocenić sam - żądanie żądaniu nierówne i jak do testu weźmiesz jakąś najprostszą podstronkę, podczas gdy większość żadań będzie dotyczyć bardziej złożonych rzeczy, to takie wyniki będą zupełnie oderwane od rzeczywistości. W warunkach eksperymentalnych pewnych rzeczy po prostu nie zasymulujesz. Osobiście wolałbym zostawić sobie trochę zapasu tak na wszelki wypadek; w końcu serwer też potrzebuje trochę oddechu do przeprowadzenia jakichś czynności administracyjnych co jakiś czas.
fragles
dzięki za odpowiedź

o to mi chodziło - dobrze, że się utwierdziłem w przekonaniu, że wlasciwe myslę - teraz tylko jak zinterpretować błą 70007 i będe już przeszczęsliwy
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.