Se você definir a simultaneidade como 1, não haverá diferença entre os dois. Começa a importar quando você tem mais de uma solicitação executada simultaneamente.
Vejamos um exemplo do que recebo no meu localhost
:
ab -c 1 -n 1000 http://localhost/
vai dar:
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)
Isso significa que foram necessários 3,912 segundos para realizar 1000 solicitações, uma a uma. Então, um único pedido precisava de 3.912 segundos / 1000 = 3,912 ms em média.
Agora vamos melhorar o nível de simultaneidade:
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)
Desta vez, em vez de 3,912 segundos, precisamos de apenas 0,730 segundos para realizar o trabalho. Realizamos 1000 solicitações em 0.730 segundos, portanto, uma solicitação levaria em média 0,730 segundos / 1000 = 0,730 ms (última linha). Mas a situação é um pouco diferente, pois agora estamos realizando 10 solicitações simultaneamente. Então, na verdade, nosso número aqui não reflete o tempo real que uma solicitação leva para ser concluída . 0,730 ms * 10 (número de solicitações simultâneas) = 7,303 ms. Esse é o tempo que leva, em média, para que uma única solicitação seja concluída se ela for executada de maneira não concorrente (ou, mais corretamente, de maneira isolada no nível de simultaneidade atual).
O último número que você vê (0,730 ms) é usado para informar aproximadamente quanto tempo total aumentaria se você adicionasse 1 solicitação ( -n 1001
) usando o nível de simultaneidade atual -c 10
(bem, pelo menos teoricamente, é assim).
As 7.303 ms fornecem uma visão geral de quanto tempo uma única solicitação isolada seria executada.
A alteração que você vê entre o exemplo -c 1
e -c 10
:
[-c 1 ]: Time per request: 3.912 [ms] (mean)
[-c 10]: Time per request: 7.303 [ms] (mean)
significa que um único pedido é executado mais rapidamente se for o único que está sendo executado -c 1
. Se houver várias solicitações -c 10
competindo por recursos, uma única solicitação levará mais tempo para ser concluída. Mas se você levar em consideração o fato de estar realizando 10 solicitações desse tipo ao mesmo tempo, nesse 7.303 ms você lida com 10 solicitações ao invés de 1.
Assim como uma medida de atraso para uma única requisição - a 7.303 ms é mais útil. Mas como medida de desempenho - 0,730 ms é mais significativo. Na verdade, como 0,730 ms < 3.912 ms você verá que poderá atender a mais solicitações por segundo na agregação se permitir 10 solicitações simultâneas.