¿Qué es el asedio?
Siege es una herramienta de evaluación comparativa y prueba de regresión http/https de host remoto que se puede usar para probar el rendimiento de su servidor web bajo coacción para ver cómo funcionará.
Permite un admin o propietario del servidor para simular visitas o conexiones a un servidor web con un número preconfigurado de conexiones simultáneas de usuarios simulados. Al utilizar este software, estos usuarios simulados apuntan al servidor y lo colocan “bajo gana” de ahí el nombre. El tiempo del asedio se mide en:
- Minutos
- El número de usuarios simulados
- La cantidad de veces que cada usuario falso repite el proceso de intentar conectarse al servidor
Por lo tanto, si 20 usuarios simulados realizan 50 solicitudes simultáneas, esto equivaldría a 1000 eventos.
Las medidas de rendimiento incluyen:
- El tiempo transcurrido de la prueba
- La cantidad de información transferida
- El tiempo de respuesta del servidor.
- La tasa de transacción
- el rendimiento
- El nivel de concurrencia
- La cantidad de veces que devolvió una respuesta 200 OK
Estas acciones y productos se informan y cuantifican al final de cada operación. Luego se puede revisar la importancia y el significado de los datos y se pueden tomar las medidas correspondientes para abordar cualquier problema encontrado.
Siege tiene esencialmente tres modos de operación:
- Regresión
- Simulación de Internet
- Fuerza bruta
Siege puede utilizar una cantidad considerable de URL enumeradas en un archivo de configuración y trabajar con ellas de forma incremental (en el modo de prueba de regresión) o aleatoriamente (en el modo de simulación de Internet). Además, el usuario puede simplemente presionar una sola URL a través de la línea de comando (en modo de fuerza bruta).
Sintaxis
[root@host ~]# siege <options> and siege <options> [url]
[root@host ~]# siege -c10 -r20 google.com
En el example arriba, Siege llegará a los servidores de Google con 10 usuarios simultáneos, 20 veces para ejecutar la prueba.
Todas las opciones disponibles:
Usar
- cerco [opción]
- cerco [opciones] URL
- ganar -g URL
Ver tabla
Opciones | NOMBRE | DESCRIPCIÓN |
---|---|---|
-V, –versión | VERSIÓN | Imprime el número de versión. |
-h, –ayuda | AYUDA | Imprime esta sección. |
-C, –configuración | CONFIGURACIÓN | Muestra la configuración actual. |
-v, –detallado | VERBOSO | Imprime notificación en pantalla. |
-g, –obtener | OBTENER | Despliega los encabezados HTTP y muestra la transacción. Ideal para la depuración de aplicaciones. |
-c, –concurrente=NUM | COMPETIDOR | Número de usuarios concurrentes. El valor predeterminado es 10. |
-yo, –internet | INTERNET | Simulación de usuario de Internet, que accede a URL de forma aleatoria. |
-b, –punto de referencia | PUNTO DE REFERENCIA | Punto de referencia: sin demoras entre solicitudes. |
-t, –tiempo = NUMm | cronometrado | Pruebas cronometradas con modificadores:S(segundos),METRO(minutos), elh(horas). Ex. –time=1H es una prueba de una hora. |
-r, –repeticiones=NUM | REPRESENTANTES | Número de veces para ejecutar la prueba. |
-f, –archivo=ARCHIVO | HORA DE OFICINA | Selecciona un archivo de URL específico. |
-R, –rc = ARCHIVO | radiocontrol | Especifique un archivo siegerc. |
-l, –registro[=ARCHIVO] | INICIAR SESIÓN | Unido al expediente. Si no se especifica FILE, se utiliza el valor predeterminado: PREFIX/var/siege.log. |
-m, –mark=”texto” | MARCA | Marque el archivo de registro con una cadena. |
-d, –retrasado=NUM | DEMORA | Retraso de tiempo aleatorio antes de cada solicitud entre 1 y NUM (no se cuenta en las estadísticas). |
-H, –encabezado=”texto” | Agregue un encabezado a la solicitud (pueden ser muchos). | |
-A, –user-agent=”texto” | Establece el agente de usuario en la solicitud. |
Instalación
CentOS
En CentOS 7, simplemente instalamos Siege.
[root@host ~]# yum install siege
Loaded plugins: fastestmirror, priorities, tmprepo
Determining fastest mirrors
epel/x86_64/metalink | 16 kB 00:00:00
* base: mirrors.CodePre.com
* epel: mirrors.CodePre.com
* extras: mirrors.CodePre.com
* updates: mirrors.CodePre.com
base | 3.6 kB 00:00:00
epel | 5.4 kB 00:00:00
extras | 2.9 kB 00:00:00
group_spacewalkproject-java-packages | 3.3 kB 00:00:00
nodesource | 2.5 kB 00:00:00
spacewalk | 3.6 kB 00:00:00
updates | 2.9 kB 00:00:00
(1/4): epel/x86_64/updateinfo | 1.0 MB 00:00:00
(2/4): epel/x86_64/primary_db | 6.9 MB 00:00:00
(3/4): updates/7/x86_64/primary_db | 5.8 MB 00:00:00
(4/4): nodesource/x86_64/primary_db | 27 kB 00:00:00
Resolving Dependencies
--> Running transaction check
---> Package siege.x86_64 0:4.0.2-2.el7 will be installed
--> Processing Dependency: libjoedog >= 0.1.2 for package: siege-4.0.2-2.el7.x86_64
--> Running transaction check
---> Package libjoedog.x86_64 0:0.1.2-1.el7 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
=====================================================================================
Package Arch Version Repository Size
=====================================================================================
Installing:
siege x86_64 4.0.2-2.el7 epel 108 k
Installing for dependencies:
libjoedog x86_64 0.1.2-1.el7 epel 19 k
Transaction Summary
=====================================================================================
Install 1 Package (+1 Dependent package)
Total download size: 126 k
Installed size: 278 k
Is this ok [y/d/N]: y
Downloading packages:
(1/2): libjoedog-0.1.2-1.el7.x86_64.rpm | 19 kB 00:00:00
(2/2): siege-4.0.2-2.el7.x86_64.rpm | 108 kB 00:00:00
------------------------------------------------------------------------------------
Total 1.9 MB/s | 126 kB 00:00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : libjoedog-0.1.2-1.el7.x86_64 1/2
Installing : siege-4.0.2-2.el7.x86_64 2/2
Verifying : libjoedog-0.1.2-1.el7.x86_64 1/2
Verifying : siege-4.0.2-2.el7.x86_64 2/2
Installed:
siege.x86_64 0:4.0.2-2.el7
Dependency Installed:
libjoedog.x86_64 0:0.1.2-1.el7
Complete!
[root@host ~]#
ubuntu
Para un servidor Ubuntu, usamos apt-get para instalar Siege.
root@host:~# apt-get install siege
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following NEW packages will be installed:
siege
0 upgraded, 1 newly installed, 0 to remove and 29 not upgraded.
Need to get 0 B/98.3 kB of archives.
After this operation, 278 kB of additional disk space will be used.
Selecting previously unselected package siege.
(Reading database ... 252416 files and directories currently installed.)
Preparing to unpack .../siege_4.0.4-1build1_amd64.deb ...
Unpacking siege (4.0.4-1build1) ...
Setting up siege (4.0.4-1build1) ...
Processing triggers for man-db (2.8.7-3) ...
root@host:~#
Pruebas
Usaremos el comando mencionado anteriormente como prueba example.
ubuntu
root@host:~# siege -c10 -r20 google.com
New configuration template added to /root/.siege
Run siege -C to view the current settings in that file
** SIEGE 4.0.4
** Preparing 10 concurrent users for battle.
The server is now under siege...
Transactions: 600 hits
Availability: 100.00 %
Elapsed time: 4.53 secs
Data transferred: 4.12 MB
Response time: 0.07 secs
Transaction rate: 132.45 trans/sec
Throughput: 0.91 MB/sec
Concurrency: 9.40
Successful transactions: 600
Failed transactions: 0
Longest transaction: 0.34
Shortest transaction: 0.02
root@host:~#
CentOS
[root@host ~]# siege -c10 -r20 google.com
New configuration template added to /root/.siege
Run siege -C to view the current settings in that file
** SIEGE 4.0.2
** Preparing 10 concurrent users for battle.
The server is now under siege...
HTTP/1.1 200 0.07 secs: 49183 bytes ==> GET /
HTTP/1.1 200 0.07 secs: 49202 bytes ==> GET /
HTTP/1.1 200 0.07 secs: 49177 bytes ==> GET /
HTTP/1.1 200 0.08 secs: 49188 bytes ==> GET /
HTTP/1.1 200 0.08 secs: 49214 bytes ==> GET /
HTTP/1.1 200 0.08 secs: 49199 bytes ==> GET /
HTTP/1.1 200 0.07 secs: 49195 bytes ==> GET /
HTTP/1.1 200 0.08 secs: 49227 bytes ==> GET /
HTTP/1.1 301 0.02 secs: 219 bytes ==> GET /
HTTP/1.1 301 0.03 secs: 219 bytes ==> GET /
HTTP/1.1 301 0.03 secs: 219 bytes ==> GET /
HTTP/1.1 301 0.03 secs: 219 bytes ==> GET /
HTTP/1.1 301 0.03 secs: 219 bytes ==> GET /
HTTP/1.1 301 0.03 secs: 219 bytes ==> GET /
HTTP/1.1 301 0.03 secs: 219 bytes ==> GET /
HTTP/1.1 200 0.08 secs: 48870 bytes ==> GET /
HTTP/1.1 200 0.08 secs: 49181 bytes ==> GET /
HTTP/1.1 200 0.08 secs: 49192 bytes ==> GET /
HTTP/1.1 200 0.07 secs: 49227 bytes ==> GET /
Transactions: 600 hits
Availability: 100.00 %
Elapsed time: 8.25 secs
Data transferred: 10.47 MB
Response time: 0.05 secs
Transaction rate: 72.73 trans/sec
Throughput: 1.27 MB/sec
Concurrency: 3.41
Successful transactions: 600
Failed transactions: 0
Longest transaction: 0.16
Shortest transaction: 0.02
[root@host ~]#
Estadísticas de rendimiento
- Minutos: Este es el número de veces que se golpea el servidor.
- Tiempo transcurrido: Este es el lapso de tiempo de toda la prueba. El resultado de esta salida se mide desde el momento en que admin invoca Siege hasta que el último usuario simulado complete su transacción.
- Datos transferidos: Esta es la cantidad total de datos transmitidos con cada uno de los usuarios simulados de Siege. Este resultado incluirá la información del encabezado. Debido a que incorpora la información del encabezado, el resultado informado a Siege será mayor que los números informados por el servidor. Si estamos en modo Internet, que empuja las URL aleatorias desde el archivo de configuración, este número variará de una prueba a otra.
- Tiempo de respuesta: Esta es la cantidad de tiempo promedio que se tarda en responder a cada solicitud simulada.
- Tasa de transacción: Esta es la cantidad promedio de transacciones que el servidor pudo manejar por segundo. En esencia: transacciones/tiempo transcurrido.
- Rendimiento: Esta es la cantidad promedio de bytes transferidos desde el servidor cada segundo a todos los usuarios simulados.
- concurrencia: Este es el número promedio de conexiones simultáneas, que es un número que aumenta a medida que disminuye el rendimiento del servidor.
- Transacciones exitosas: este número indica la cantidad de veces que el servidor devolvió un código de error inferior a 400. Además, los redireccionamientos también se consideran transacciones exitosas.
Descargar
También puede obtener elúltima versión de asedioohla página de inicio de asedioohla página de GitHub de Siege.
Nota: Siege solo se ejecuta en sistemas basados en Unix, sin embargo, se puede emplear para probar IIS, junto con otros servidores web como ApacheNginx y Litespeed.
¡Haga clic a continuación para usar este conveniente cupón hoy!
¿Tiene un servidor existente que ha perdido esa velocidad que alguna vez tuvo?
¿Sientes que tu servidor está en su último tramo?
¡Pruebe uno de nuestros servidores más nuevos y rápidos en el mercado hoy y recupere su ventaja!