Siege es una utilidad de pruebas de carga y benchmarking HTTP/HTTPS diseñada para medir el rendimiento de servidores bajo alta demanda concurrente.
Uso Básico
# Benchmark con 10 conexiones concurrentes durante 1 minuto
siege -c 10 -t 1m https://example.com/
Opciones Comunes de Línea de Comandos
| Opción | Bandera | Descripción |
|---|---|---|
-c N |
--concurrent=N |
Número de usuarios simulados simultáneos |
-t MINm |
--time=MINm |
Duración total de la prueba (ej. 30s, 5m, 1h) |
-r N |
--reps=N |
Número de solicitudes por usuario antes de finalizar |
-b |
--benchmark |
Modo benchmark (sin retraso entre solicitudes) |
-i |
--internet |
Acceder a las URLs del archivo en orden aleatorio |
-f <file> |
--file=<file> |
Leer lista de URLs objetivo desde un archivo |
-H <hdr> |
--header=<hdr> |
Añadir cabecera HTTP personalizada a las solicitudes |
Pruebas con Archivo de Múltiples URLs
Cree el archivo urls.txt:
https://example.com/
https://example.com/api/items
https://example.com/about
Ejecutar simulación aleatoria sobre las URLs:
siege -i -c 25 -t 2m -f urls.txt
Explicación de las Métricas de Salida
- Availability: Porcentaje de solicitudes gestionadas con éxito (debe ser 100%).
- Elapsed time: Duración total de la ejecución de la prueba.
- Transaction rate: Solicitudes gestionadas por segundo (RPS).
- Throughput: Megabytes de datos transferidos por segundo.
- Concurrency: Promedio de conexiones concurrentes activas.