Narzędzie testu porównawczego apache jest bardzo proste i chociaż daje solidne wyobrażenie o pewnej wydajności, złym pomysłem jest poleganie tylko na nim, jeśli planujesz wystawić witrynę na poważne obciążenie produkcyjne.
Powiedziawszy to, oto najczęstsze i najprostsze parametry:
-c
: ("Konkurencja"). Wskazuje, ilu klientów (osób / użytkowników) będzie odwiedzało witrynę w tym samym czasie. Podczas ab
uruchomień będą -c
pojawiać się klienci odwiedzający witrynę. To właśnie decyduje o poziomie stresu, jaki Twoja witryna będzie odczuwać podczas testu porównawczego.
-n
: Wskazuje, ile żądań zostanie złożonych. To decyduje tylko o długości testu. Wysoka -n
wartość z -c
wartością, którą może obsługiwać Twój serwer, jest dobrym pomysłem, aby upewnić się, że nie dojdzie do załamania pod wpływem długotrwałego stresu: wsparcie stresu przez 5 sekund niż przez 5 godzin nie jest tym samym.
-k
: Robi to przeglądarka funkcjonalna „KeepAlive” z natury. Nie musisz przekazywać wartości, -k
ponieważ jest ona „logiczna” (co oznacza: oznacza, że chcesz, aby Twój test używał nagłówka Keep Alive z HTTP i podtrzymywał połączenie). Ponieważ przeglądarki to robią i prawdopodobnie zechcesz symulować obciążenie i przepływ witryny z przeglądarek, zaleca się wykonanie testu porównawczego.
Ostatnim argumentem jest po prostu host. Domyślnie trafi protokół http: //, jeśli go nie określisz.
ab -k -c 350 -n 20000 example.com/
Wydając powyższe polecenie, uderzysz http://example.com/ z 350 jednoczesnymi połączeniami, aż do spełnienia 20 tysięcy żądań. Zostanie to zrobione za pomocą nagłówka Keep Alive.
Po zakończeniu procesu 20 tysięcy zapytań otrzymasz informację zwrotną na temat statystyk. Dzięki temu dowiesz się, jak dobrze działała strona pod obciążeniem, jakie stawiasz, gdy używasz powyższych parametrów.
Aby dowiedzieć się, ile osób witryna może obsłużyć w tym samym czasie, po prostu sprawdź, czy czasy odpowiedzi (średnie, minimalne i maksymalne czasy odpowiedzi, nieudane żądania itp.) To liczby, które witryna może zaakceptować (różne witryny mogą chcieć różnych prędkości). Możesz uruchomić narzędzie z różnymi wartościami -c, dopóki nie trafisz w miejsce, w którym powiesz „Jeśli go zwiększę, zaczyna otrzymywać nieudane żądania i pęka”.
W zależności od witryny oczekujesz średniej liczby żądań na minutę. Różni się tak bardzo, że nie będziesz w stanie tego symulować za pomocą ab. Pomyśl jednak o tym w ten sposób: jeśli przeciętny użytkownik będzie uderzał 5 żądań na minutę, a średni czas odpowiedzi, który uważasz za prawidłowy, wynosi 2 sekundy, oznacza to, że 10 sekund na minutę 1 użytkownik będzie na żądanie, co oznacza tylko 1/6 czasu trafi na stronę. Oznacza to również, że jeśli 6 użytkowników jednocześnie odwiedza witrynę za pomocą ab, prawdopodobnie będziesz mieć 36 użytkowników w symulacji, nawet jeśli poziom współbieżności (-c) wynosi tylko 6.
Zależy to od zachowania, jakiego oczekujesz od użytkowników korzystających z witryny, ale możesz je uzyskać z „Oczekuję, że mój użytkownik trafi X żądań na minutę i uważam, że średni czas odpowiedzi jest ważny, jeśli wynosi 2 sekundy”. Następnie po prostu zmodyfikuj swój poziom -c, aż osiągniesz 2 sekundy średniego czasu odpowiedzi (ale upewnij się, że maksymalny czas odpowiedzi i stddev są nadal ważne) i sprawdź, jak duży możesz zrobić -c.
Mam nadzieję, że wyjaśniłem to jasno :) Powodzenia