AB es una abreviatura de ApacheBench.
El comando ab crea múltiples hilos de acceso concurrentes para simular que varios visitantes acceden a una dirección URL al mismo tiempo. Sus objetivos de prueba están basados en URLs, por lo que puede usarse para probar tanto el estrés de carga de apache como otros estrés del servidor web como nginx, lighthttp, tomcat, IIS, etc.
El comando ab tiene pocos requisitos para el ordenador que está emitiendo la carga, y no ocupa mucha CPU ni memoria. Sin embargo, causará una carga enorme en el servidor objetivo, y su principio es similar a los ataques de CC. También tienes que prestar atención a las pruebas y al usarlo tú mismo, porque si no, tendrás demasiada carga de golpe. Puede hacer que el servidor objetivo se quede sin recursos y, en casos graves, incluso provocar un fallo.
1. Introducción al banco apache
ApacheBench es una herramienta web de pruebas de estrés que incluye servidores Apache, abreviada como ab. AB también es una herramienta de línea de comandos con bajos requisitos nativos para iniciar cargas útiles, y se pueden crear muchos hilos de acceso concurrentes según el comando AB, simulando que varios visitantes acceden a una determinada dirección URL al mismo tiempo, para poder usarse para probar la presión de carga del servidor objetivo. En general, la herramienta AB es pequeña y sencilla, rápida de aprender y puede proporcionar los indicadores básicos de rendimiento que necesitas, pero no hay resultados gráficos ni puede ser monitorizada.
2. Instalación de bancos Apache
Primero, necesitas instalar el servidor Apache, descargar la dirección:El inicio de sesión del hipervínculo es visible.,
Mi ordenador es un sistema Win10 de 64 bits, así que descargué "httpd-2.4.33-win64-VC15.zip", enlace:El inicio de sesión del hipervínculo es visible.
Se recomienda descargar la última versión, ya que las versiones anteriores de ab no soportan el parámetro -r.
3. Uso en el banco Apache
Entiende los parámetros
Descripción del parámetro: Formato: ab [opciones] [http://]nombre de host[:p ort]/path
-n solicitudes Número de solicitudes a realizar //El número total de solicitudes iniciadas en esta prueba -c concurrencia Número de múltiples solicitudes para realizar // Número de solicitudes (o concurrencia) generadas a la vez -t límite de tiempo segundos para máximo. Esperar respuestas //El número máximo de segundos que se realiza una prueba por defecto. -r No salir en el socket error de recepción. Lanzar una excepción para continuar la tarea de prueba -p postfile Archivo que contiene datos a POST // Un archivo que contiene datos que deben ser POST, en un formato de archivo como "p1=1&p2=2". El método de uso es -p 111.txt
-Encabezado tipo contenido T tipo contenido para POSTing El encabezado de tipo Contenido usado para los datos POST, como -T "application/x-www-form-urlencoded". (co-p) -v verbosidad ¿Cuánta información de solución de problemas hay que imprimir Establece el nivel de detalle para mostrar la información: un valor de 4 o mayor mostrará la información de cabecera, un valor de 3 o mayor mostrará un código de respuesta (404, 200, etc.) y un valor de 2 o mayor mostrará advertencias y otra información. -V muestra el número de versión y sale. -C atributo Añadir galleta, por ejemplo. -C "c1=1234,c2=2,c3=3" (repetible) -C cookie-name=value Añadir una cookie a la línea request:. La forma típica es un par de parámetros nombre=valor. Este parámetro puede repetirse, dividido por una coma. Consejo: Puedes usar el principio de implementación de sesión para pasar el parámetro JSESSIONID y así lograr la función de mantener la sesión, como -C "c1=1234, c2=2, c3=3, JSESSIONID=FF056CD16DA9D71CB131C1D56F0319F8". -w Imprimir resultados en tablas HTML // Resultados de salida en formato de tabla HTML. Por defecto, es una tabla con dos columnas de ancho sobre un fondo blanco. -Uso CABEZA en vez de GET -x atributos Cadena para insertar como atributos de la tabla -y atributos String to insert como atributos tr -z atributos String to insert como atributos td o th -Atributo H Añadir cabecera arbitraria, por ejemplo. 'Aceptar-Codificar: gzip' Insertado después de todas las líneas normales de cabecera. (repetible) -Un atributo Añadir Autenticación WWW básica, los atributos son nombres de usuario y contraseña separados por dos puntos. -P atributo Añadir Autenticación Básica de Proxy, los atributos son un nombre de usuario y contraseña separados por dos puntos. -X proxi:puerto Proxyserver y número de puerto a usar -V Imprimir número de versión y salida -k Usar la función HTTP KeepAlive -d No muestres los percentiles en la mesa. -S No muestres estimadores de confianza ni advertencias. -g nombre de archivo Salida de datos recogidos en formato gnuplet. -e Archivo de salida del archivo CSV con porcentajes servidos -h Mostrar información de uso (este mensaje) Hay muchos parámetros, generalmente podemos usar parámetros -c y -n. Por ejemplo:
Descomprime el "httpd-2.4.33-win64-VC15.zip", ve a \Apache24\bin y arránzalo con la línea de comandos cmd, como se muestra en la figura siguiente:
SSL no compilado en; no soporta https: SSL no se compila en; No hay soporte para https, lo que significa que la web no soporta https.
Resultados de las pruebas:
C:\Users\itsvse_pc\Downloads\httpd-2.4.33-win64-VC15\Apache24\bin>ab -c 10 -n 1000 https://www.itsvse.com SSL no compilado en; Sin soporte para HTTPS
C:\Users\itsvse_pc\Downloads\httpd-2.4.33-win64-VC15\Apache24\bin>ab -c 10 -n 1000 http://www.itsvse.com/ Esto es ApacheBench, Versión 2.3 <$Revision: 1826891 $> Copyright 1996 Adam Twiss, Zeus Technology Ltd,El inicio de sesión del hipervínculo es visible. Licenciado a The Apache Software Foundation,El inicio de sesión del hipervínculo es visible.
Benchmarkingwww.itsvse.com(ten paciencia) Completó 100 solicitudes 200 solicitudes completadas Completó 300 solicitudes Completó 400 solicitudes Completó 500 solicitudes Completadas 600 solicitudes Completó 700 solicitudes Completó 800 solicitudes Completó 900 solicitudes Completó 1000 solicitudes Terminé 1000 solicitudes
Software de servidor: Nombre del servidor de anfitriones: www.itsvse.com Puerto del servidor: 80
Ruta del documento: / Longitud del documento: 178 bytes
Nivel de concurrencia: 10 Tiempo de los exámenes: 44,916 segundos Solicitudes completas: 1000 Solicitudes fallidas: 0 Respuestas que no son de 2xx: 1000 Total transferido: 349000 bytes Transferencia en HTML: 178.000 bytes Peticiones por segundo: 22,26 [#/seg] (media) Tiempo por solicitud: 449.164 [ms] (media) Tiempo por solicitud: 44,916 [ms] (media, en todas las solicitudes concurrentes) Tasa de transferencia: 7,59 [Kbytes/seg] recibida
Tiempos de conexión (ms) Media[+/-sd] Máximo mediana
Connect: 32 45 60.1 37 1439
Processing: 35 401 185.6 356 1795
Waiting: 34 245 199.6 228 1791
Total: 69 446 195.4 397 1830
Porcentaje de las solicitudes atendidas dentro de un determinado periodo (ms) 50% 397 66% 415 75% 439 80% 461 90% 535 95% 623 98% 1563 99% 1784 100% 1830 (la petición más larga) Análisis de parámetros:
Ruta del documento: página de prueba Longitud del documento: El tamaño de la página Nivel de concurrencia: El número de concurrencias probadas simultáneamente Tiempo necesario para las pruebas: La duración de toda la prueba Solicitudes completas: El número de solicitudes completadas Solicitudes fallidas: El número de solicitudes fallidas Errores de escritura: 0 Total transferido: La cantidad de red transferida a lo largo del proceso HTML transferido: La cantidad de contenido HTML transferido a lo largo del proceso Peticiones por segundo: Una de las métricas más importantes, equivalente a transacciones por segundo en LR y media entre paréntesis, indica que esto es una media Tiempo por solicitud: Las dos métricas más importantes, equivalentes al tiempo medio de respuesta de transacción en LR, la media entre paréntesis indican que esto es un promedio Tiempo por solicitud: El promedio del tiempo real de ejecución para cada solicitud de conexión Tasa de transferencia: Tráfico medio por segundo en la red, lo que puede ayudar a descartar el problema del exceso de tráfico de red que causa largos tiempos de respuesta
|