Jeśli masz współbieżność ustawioną na 1, nie ma między nimi żadnej różnicy . To zaczyna mieć znaczenie, gdy wykonano więcej niż 1 żądanie jednocześnie.
Spójrzmy na przykład tego, co dostaję na moim localhost
:
ab -c 1 -n 1000 http://localhost/
da:
Time taken for tests: 3.912 seconds
Time per request: 3.912 [ms] (mean)
Time per request: 3.912 [ms] (mean, across all concurrent requests)
Oznacza to, że do wykonania 1000 żądań pojedynczo potrzeba było 3,912 sekund. Tak więc pojedyncze żądania wymagały średnio 3,912 sekund / 1000 = 3,912 ms.
Teraz nieco zwiększmy poziom współbieżności:
ab -c 10 -n 1000 http://localhost/
Time taken for tests: 0.730 seconds
Time per request: 7.303 [ms] (mean)
Time per request: 0.730 [ms] (mean, across all concurrent requests)
Tym razem zamiast 3,912 sekund potrzebujemy tylko 0,730 sekund, aby wykonać zadanie. Wykonaliśmy 1000 żądań w 0,730 sekund, więc jedno żądanie zajmie średnio 0,730 sekund / 1000 = 0,730 ms (ostatnia linia). Ale sytuacja jest nieco inna, ponieważ obecnie wykonujemy 10 żądań jednocześnie. Tak więc w rzeczywistości nasz numer nie odzwierciedla rzeczywistego czasu potrzebnego na wypełnienie jednego żądania . 0,730 ms * 10 (liczba jednoczesnych żądań) = 7,303 ms. Jest to czas, który średnio zajmuje wykonanie pojedynczego żądania, jeśli zostało ono wykonane równolegle (lub dokładniej, w sposób izolowany na bieżącym poziomie współbieżności).
Ostatnia liczba, którą widzisz (0,730 ms) jest używana, aby powiedzieć w przybliżeniu, ile całkowity czas by się wydłużył, gdybyś dodał 1 żądanie ( -n 1001
) przy użyciu obecnego poziomu współbieżności -c 10
(przynajmniej teoretycznie tak jest).
7,303 ms daje przegląd czasu trwania pojedynczego pojedynczego żądania.
Zmiana widoczna między przykładem -c 1
a -c 10
:
[-c 1 ]: Time per request: 3.912 [ms] (mean)
[-c 10]: Time per request: 7.303 [ms] (mean)
oznacza, że pojedyncze żądanie działa szybciej, jeśli jest ono jedyne wykonywane -c 1
. Jeśli -c 10
o zasoby konkuruje wiele żądań , wykonanie jednego żądania potrwa dłużej. Ale jeśli weźmiesz pod uwagę fakt, że wykonujesz 10 takich żądań jednocześnie, w tym 7,303 ms masz do czynienia z 10 żądaniami zamiast 1.
Zatem jako miarę opóźnienia dla pojedynczego żądania - 7,303 ms jest bardziej przydatne. Ale jako miarę wydajności - 0,730 ms ma większe znaczenie. W rzeczywistości, gdy 0,730 ms <3,912 ms widzisz, że będziesz w stanie obsłużyć więcej żądań na sekundę łącznie, jeśli zezwolisz na 10 równoczesnych żądań.