Significa una sola prueba con un total de 100 solicitudes, manteniendo 20 solicitudes abiertas en todo momento. Creo que la idea errónea que tiene es que todas las solicitudes toman la misma cantidad de tiempo, lo que prácticamente nunca es el caso. En lugar de emitir solicitudes en lotes de 20, ab simplemente comienza con 20 solicitudes y emite una nueva cada vez que finaliza una solicitud existente.
Por ejemplo, las pruebas con ab -n 10 -c 3
comenzaría with3 solicitudes simultáneas:
[1, 2, 3]
Digamos # 2 acabados primera, ab lo reemplaza con una cuarta:
[1, 4, 3]
... entonces # 1 con tal que acabe, sustituido por un quinto:
[5, 4, 3]
... luego # 3 acabados:
[5, 4, 6]
... y así sucesivamente, hasta la solicitud se han realizado un total de 10 solicitudes. (Como las solicitudes 8, 9 y 10 están completas, la simultaneidad se reduce a 0, por supuesto).
¿Tiene sentido?
En cuanto a su pregunta sobre por qué ve resultados con más fallas que las solicitudes totales ... No sé la respuesta a eso. No puedo decir que he visto eso. ¿Puedes publicar enlaces o casos de prueba que muestren esto?
Actualización: Al observar the source, ab seguimiento de cuatro tipos de errores que se detallan a continuación las solicitudes con error ": ..." línea:
- Conectar - (
err_conn
en origen) incrementa cuando falla ab para establecer la conexión HTTP
- Recibir - (
err_recv
en origen) incrementa cuando ab falla una lectura de la conexión falla
- longitud - (
err_length
en origen) aumenta cuando la longitud de la respuesta es diferente de la longitud de la primera buena resp. onse recibido.
- Excepciones - (? Por ejemplo, la conexión se mató por el servidor) (
err_except
en la fuente) incrementa cuando ab ve un error al sondeo de la toma de conexión
La lógica alrededor cuando éstas se producen y cómo se cuentan (y cómo se realiza el seguimiento del recuento total de bad
) es, por necesidad, un poco complejo. Parece que la versión actual de ab solo debería contar una falla una vez por solicitud, pero tal vez el autor de ese artículo estaba usando una versión anterior que de alguna manera contaba más de una? Esa es mi mejor suposición.
Si logras reproducir el comportamiento, definitivamente file a bug.
Gracias por la explicación sobre la concurrencia. El enlace donde vi esos resultados está en la pregunta original, espero que sea un ejemplo suficiente. En cualquier caso, intentaré replicar la prueba en el trabajo de mañana y volveré a publicar si tengo algo. – Swader
¡Eso es genial, gracias! – Swader