ab - Apache HTTP server benchmarking tool
ejemplo del AB con una peticion GET:
ab: The Apache Bench benchmarking utility
-n 400: The number of requests for your benchmark (yes, this one is crazy small; it’s so people don’t hammer example.com by copy pasting)
-c 10: Number of concurrent requests
-g apache-1.tsv: This tells ab to write a “gnuplot-file” (that’s right from the man page)
"http://example.com": The URL you want to benchmark against
ab -k -n50000 -c100 "172.29.151.82:17503/v1/pcrf/provisioning/subscriber/56911111112?platform=SCOB"
respuesta tipo:
Server Software: Apache
Server Hostname:
Server Port: 80
Document Path: /
Document Length: 162809 bytes
Concurrency Level: 50
Time taken for tests: 12.664 seconds
Complete requests: 500
Failed requests: 377
(Connect: 0, Receive: 0, Length: 377, Exceptions: 0)
Write errors: 0
Non-2xx responses: 377
Total transferred: 20291876 bytes
HTML transferred: 20147278 bytes
Requests per second: 39.48 [#/sec] (mean)
Time per request: 1266.372 [ms] (mean)
Time per request: 25.327 [ms] (mean, across all concurrent requests)
Transfer rate: 1564.81 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 0.4 0 2
Processing: 194 1190 1617.0 248 6060
Waiting: 194 965 1263.9 248 5190
Total: 194 1190 1617.0 248 6060
Percentage of the requests served within a certain time (ms)
50% 248
66% 359
75% 1555
80% 2787
90% 3979
95% 4709
98% 5427
99% 5967
100% 6060 (longest request)
ej: del AB para una petición POST:
ab -g resultcreatePD.plot -k -T "content-type: text/xml" -H "SOAPAction: createPD" -p POST_crearpasediario.txt -n 10000 -c 400 http://localhost:17506/v1/WSPASEDIARIO
Ahora la opción -g nos entrega una salida un archivo de texto plano con los valores. EJ:
1 15:03:27.290
1 15:03:27.294
1 15:03:27.322
1 15:03:27.323
1 15:03:27.325
1 15:03:27.331
1 15:03:27.332
1 15:03:27.335
2 15:03:27.354
1 15:03:27.355
1 15:03:27.358
1 15:03:27.360
1 15:03:27.361
1 15:03:27.363
1 15:03:27.365
3 15:03:27.366
1 15:03:27.367
1 15:03:27.397
2 15:03:27.400
1 15:03:27.402
1 15:03:27.404
2 15:03:27.405
1 15:03:27.406
2 15:03:27.415
Esos valores se pueden graficar para crear un gráfico de dispersión:
gnuplot es un programa muy flexible para generar gráficas de funciones y datos.
Este programa es compatible con los sistemas operativos más populares (Linux, UNIX, Windows, Mac OS X...). El origen de gnuplot data de 1986.
gnuplot puede producir sus resultados directamente en pantalla, así como en multitud de formatos de imagen, como PNG, EPS, SVG, JPEG, etc. Se puede usar interactivamente o en modo por lotes (batch), usando scripts.
# Let's output to a jpeg file
set terminal jpeg size 500,500
# This sets the aspect ratio of the graph
set size 1, 1
# The file we'll write to
set output "graphs/timeseries.jpg"
# The graph title
set title "Benchmark testing"
# Where to place the legend/key
set key left top
# Draw gridlines oriented on the y axis
set grid y
# Specify that the x-series data is time data
set xdata time
# Specify the *input* format of the time data
set timefmt "%s"
# Specify the *output* format for the x-axis tick labels
set format x "%S"
# Label the x-axis
set xlabel 'seconds'
# Label the y-axis
set ylabel "response time (ms)"
# Tell gnuplot to use tabs as the delimiter instead of spaces (default)
set datafile separator '\t'
# Plot the data
plot "data/testing.tsv" every ::2 using 2:5 title 'response time' with points
exit
No hay comentarios.:
Publicar un comentario