http://httpd.apache.org/docs/2.0/programs/ab.html
ab
Es una herramienta para la evaluación comparativa del servidor Apache Hypertext Transfer Protocol (HTTP). Está diseñado para darle una impresión de cómo se está desempeñando la instalación actual de Apache. Esto le muestra especialmente cuántas solicitudes por segundo puede manejar la instalación de Apache.
Visión de conjunto
ab [ -A auth-username:password ] [ -c concurrency ] [ -C cookie-name=value ] [ -d ] [ -e csv-file ] [ -g gnuplot-file ] [ -h ] [ -H custom-header ] [ -i ] [ -k ] [ -n requests ] [ -p POST-file ] [ -P proxy-auth-username:password ] [ -q ] [ -s ] [ -S ] [ -t timelimit ] [ -T content-type ] [ -v verbosity] [ -V ] [ -w ] [ -x <table>-attributes ] [ -X proxy[:port] ] [ -y <tr>-attributes ] [ -z <td>-attributes ] [http://]hostname[:port]/path
Opciones
-A auth-username:password
Proporcione las credenciales de autenticación BÁSICAS al servidor. El nombre de usuario y la contraseña están separados por uno :
y se envían a través de la red codificados como base64. La cadena se enviará independientemente de si el servidor requiere la cadena ( es decir , se ha enviado la autenticación 401 requerida).
-c concurrency
El número de solicitudes múltiples ejecutadas a la vez. El valor predeterminado es una solicitud a la vez.
-C cookie-name=value
Cookie:
Agrega una línea a la solicitud. Los parámetros suelen tener la forma de un par. Este campo es repetible.name=value
-d
No muestre el "Porcentaje de publicación en la tabla XX [ms]". (Soporte heredado).
-e csv-file
Escriba un archivo de valores separados por comas (CSV) que contenga el tiempo (en milisegundos) dedicado a atender ese porcentaje de solicitudes para cada porcentaje (del 1% al 100%). Generalmente, es más útil que los archivos "gnuplot". Porque el resultado ha sido "encajonado".
-g gnuplot-file
Escriba todos los valores medidos como archivos "gnuplot" o TSV (valores separados por tabulaciones). Este archivo se puede importar fácilmente a paquetes de software como Gnuplot, IDL, Mathematica, Igor e incluso Excel. La etiqueta está en la primera línea del archivo.
-h
Muestra información de uso.
-H custom-header
Agregue encabezados adicionales a la solicitud. Este parámetro suele tener la forma de una línea de encabezado válida, que contiene un par de valores de campo separados por dos puntos ( es decir , "Accept-Encoding: zip/zop;8bit"
).
-i
En su lugar, haz una HEAD
solicitud GET
.
-k
Habilite la función HTTP KeepAlive, es decir , ejecute varias solicitudes en una sesión HTTP. El valor predeterminado es no KeepAlive.
-n requests
El número de solicitudes ejecutadas para la sesión de referencia. La configuración predeterminada es ejecutar solo una solicitud, lo que generalmente conduce a resultados de referencia no representativos.
-p POST-file
El archivo que contiene los datos que se van a publicar.
-P proxy-auth-username:password
Proporcione las credenciales de autenticación BÁSICAS de camino al agente. El nombre de usuario y la contraseña están separados por uno :
y se envían a través de la red codificados como base64. Esta cadena se enviará independientemente de si el proxy lo requiere ( es decir , se ha enviado la autenticación de proxy 407 requerida).
-q
Cuando se procesan más de 150 solicitudes, el ab
recuento de progreso se emite por cada 10% o aproximadamente 100 solicitudes stderr
. Esta -q
bandera suprimirá estos mensajes.
-s
Al compilar ( ab -h
se lo mostrará), utilice la protección SSL en https
lugar del http
protocolo. Esta característica es experimental y muy básica. Es posible que no desee utilizarlo.
-S
Cuando el promedio y la mediana son una o más veces la desviación estándar, no se muestran los valores de la mediana y la desviación estándar y no se muestran mensajes de advertencia / error. Y el valor predeterminado es el valor mínimo / promedio / máximo. (Soporte heredado).
-t timelimit
El número máximo de segundos utilizados para la evaluación comparativa. Esto significa -n 50000
interno. Úselo para comparar el servidor en un tiempo total fijo. No hay límite de tiempo por defecto.
-T content-type
El encabezado del tipo de contenido utilizado para los datos POST.
-v verbosity
Establezca el nivel de detalle: la 4
información 3
se mostrará en el título en la parte superior, los códigos de respuesta (404, 200, etc.) 2
se mostrarán en la parte superior, las advertencias y los mensajes se mostrarán en la parte superior.
-V
Muestre el número de versión y salga.
-w
Imprima los resultados en una tabla HTML. La tabla predeterminada tiene dos columnas de ancho con un fondo blanco.
-x <table>-attributes
La cadena utilizada como atributo <table>
. Insertar atributos.<table here >
-X proxy[:port]
Utilice un servidor proxy para procesar la solicitud.
-y <tr>-attributes
La cadena utilizada como atributo <tr>
.
-z <td>-attributes
La cadena utilizada como atributo <td>
.
BICHO
Hay varios búferes declarados estáticamente de longitud fija. Combinado con el análisis retardado de los parámetros de la línea de comandos, los encabezados de respuesta del servidor y otras entradas externas, esto puede causarle problemas. No implementa completamente HTTP / 1.x. Acepte sólo determinadas formas de respuesta "esperadas". strstr(3)
La pantalla de uso intensivo en la parte superior del perfil puede indicar problemas de rendimiento; es decir , medirá el ab
rendimiento en lugar del rendimiento del servidor.
Ejemplo de prueba de esfuerzo concurrente
Envíe 1000 solicitudes http get a [ http://192.168.10.232:8000/blog , el concurrente es 10]:
$ ab -n1000 -c10 http://localhost/
This is ApacheBench, Version 2.3 <$Revision: 1706008 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/
Benchmarking localhost (be patient)
Completed 100 requests
Completed 200 requests
Completed 300 requests
Completed 400 requests
Completed 500 requests
Completed 600 requests
Completed 700 requests
Completed 800 requests
Completed 900 requests
Completed 1000 requests
Finished 1000 requests
Server Software: nginx/1.10.3
Server Hostname: localhost
Server Port: 80
Document Path: /
Document Length: 11321 bytes
Concurrency Level: 10
Time taken for tests: 0.066 seconds
Complete requests: 1000
Failed requests: 0
Total transferred: 11566000 bytes
HTML transferred: 11321000 bytes
Requests per second: 15207.74 [#/sec] (mean)
Time per request: 0.658 [ms] (mean)
Time per request: 0.066 [ms] (mean, across all concurrent requests)
Transfer rate: 171770.21 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 0.1 0 0
Processing: 0 0 0.1 0 1
Waiting: 0 0 0.2 0 1
Total: 0 1 0.1 1 1
Percentage of the requests served within a certain time (ms)
50% 1
66% 1
75% 1
80% 1
90% 1
95% 1
98% 1
99% 1
100% 1 (longest request)
Tenga en cuenta que el tiempo por solicitud: 0,658 [ms] (media) es el tiempo medio de finalización de cada lote de solicitudes, donde se completan 10 solicitudes. Tiempo por solicitud: 0,066 [ms] (media, en todas las solicitudes simultáneas) es el tiempo medio de finalización de cada solicitud.
ApacheBench solo usará un hilo del sistema operativo. En muchos casos, el propio ApacheBench es el cuello de botella. Cuando se usa ApacheBench en hardware con múltiples núcleos de procesador, se recomienda que un núcleo de CPU ejecute un subproceso ab, pero ahora que hay muchos núcleos de CPU, como 48 núcleos, ejecutar manualmente 48 comandos también es un esfuerzo individual.
En general, ab solo es adecuado para pruebas aproximadas de un solo componente, como Apache http, porque no puede usar múltiples núcleos, no se puede parametrizar y no admite protocolos que no sean http y https. No es adecuado para pruebas a nivel empresarial. Por ejemplo, una vez que hay una base de datos en segundo plano, la prueba ab casi no tiene sentido.