From 86505b1c548b5aaae4e0230cc243ea027f13d8dd Mon Sep 17 00:00:00 2001 From: Tatsuhiro Tsujikawa Date: Tue, 8 Dec 2015 23:56:21 +0900 Subject: [PATCH] Update h2load howto and all manual pages --- doc/h2load.1 | 24 +++++++++++++++++++- doc/h2load.1.rst | 17 ++++++++++++++ doc/h2load.h2r | 2 ++ doc/nghttp.1 | 5 ++-- doc/nghttp.1.rst | 3 ++- doc/nghttpd.1 | 2 +- doc/nghttpx.1 | 2 +- doc/sources/h2load-howto.rst | 44 +++++++++++++++++++++--------------- 8 files changed, 75 insertions(+), 24 deletions(-) diff --git a/doc/h2load.1 b/doc/h2load.1 index 241d6505..272b9f0b 100644 --- a/doc/h2load.1 +++ b/doc/h2load.1 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "H2LOAD" "1" "November 29, 2015" "1.5.1-DEV" "nghttp2" +.TH "H2LOAD" "1" "December 08, 2015" "1.5.1-DEV" "nghttp2" .SH NAME h2load \- HTTP/2 benchmarking tool . @@ -374,6 +374,28 @@ The fraction of the number of connections within standard deviation range (mean +/\- sd) against total number of successful connections. .UNINDENT +.TP +.B req/s (client) +.INDENT 7.0 +.TP +.B min +The minimum request per second among all clients. +.TP +.B max +The maximum request per second among all clients. +.TP +.B mean +The mean request per second among all clients. +.TP +.B sd +The standard deviation of request per second among all clients. +server. +.TP +.B +/\- sd +The fraction of the number of connections within standard +deviation range (mean +/\- sd) against total number of successful +connections. +.UNINDENT .UNINDENT .SH FLOW CONTROL .sp diff --git a/doc/h2load.1.rst b/doc/h2load.1.rst index 448c4276..c6790728 100644 --- a/doc/h2load.1.rst +++ b/doc/h2load.1.rst @@ -213,6 +213,8 @@ is 1 second and 500ms is 500 milliseconds). Units are h, m, s or ms (hours, minutes, seconds and milliseconds, respectively). If a unit is omitted, a second is used as unit. +.. _h2load-1-output: + OUTPUT ------ @@ -301,6 +303,21 @@ time for 1st byte (of (decrypted in case of TLS) application data) deviation range (mean +/- sd) against total number of successful connections. +req/s (client) + min + The minimum request per second among all clients. + max + The maximum request per second among all clients. + mean + The mean request per second among all clients. + sd + The standard deviation of request per second among all clients. + server. + +/- sd + The fraction of the number of connections within standard + deviation range (mean +/- sd) against total number of successful + connections. + FLOW CONTROL ------------ diff --git a/doc/h2load.h2r b/doc/h2load.h2r index e022aa8d..8cabe533 100644 --- a/doc/h2load.h2r +++ b/doc/h2load.h2r @@ -1,3 +1,5 @@ +.. _h2load-1-output: + OUTPUT ------ diff --git a/doc/nghttp.1 b/doc/nghttp.1 index b246da69..f2bdc527 100644 --- a/doc/nghttp.1 +++ b/doc/nghttp.1 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "NGHTTP" "1" "November 29, 2015" "1.5.1-DEV" "nghttp2" +.TH "NGHTTP" "1" "December 08, 2015" "1.5.1-DEV" "nghttp2" .SH NAME nghttp \- HTTP/2 client . @@ -152,7 +152,8 @@ Default: \fB16\fP .B \-M, \-\-peer\-max\-concurrent\-streams= Use as SETTINGS_MAX_CONCURRENT_STREAMS value of remote endpoint as if it is received in SETTINGS frame. -The default is large enough as it is seen as unlimited. +.sp +Default: \fB100\fP .UNINDENT .INDENT 0.0 .TP diff --git a/doc/nghttp.1.rst b/doc/nghttp.1.rst index 128eeab6..775f86f0 100644 --- a/doc/nghttp.1.rst +++ b/doc/nghttp.1.rst @@ -116,7 +116,8 @@ OPTIONS Use as SETTINGS_MAX_CONCURRENT_STREAMS value of remote endpoint as if it is received in SETTINGS frame. - The default is large enough as it is seen as unlimited. + + Default: ``100`` .. option:: -c, --header-table-size= diff --git a/doc/nghttpd.1 b/doc/nghttpd.1 index ad8d93da..6f1978f9 100644 --- a/doc/nghttpd.1 +++ b/doc/nghttpd.1 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "NGHTTPD" "1" "November 29, 2015" "1.5.1-DEV" "nghttp2" +.TH "NGHTTPD" "1" "December 08, 2015" "1.5.1-DEV" "nghttp2" .SH NAME nghttpd \- HTTP/2 server . diff --git a/doc/nghttpx.1 b/doc/nghttpx.1 index a0982c49..a6f66efb 100644 --- a/doc/nghttpx.1 +++ b/doc/nghttpx.1 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "NGHTTPX" "1" "November 29, 2015" "1.5.1-DEV" "nghttp2" +.TH "NGHTTPX" "1" "December 08, 2015" "1.5.1-DEV" "nghttp2" .SH NAME nghttpx \- HTTP/2 proxy . diff --git a/doc/sources/h2load-howto.rst b/doc/sources/h2load-howto.rst index 7c07194f..af3c42e3 100644 --- a/doc/sources/h2load-howto.rst +++ b/doc/sources/h2load-howto.rst @@ -1,10 +1,10 @@ h2load - HTTP/2 benchmarking tool - HOW-TO ========================================== -h2load is benchmarking tool for HTTP/2. If built with +h2load is benchmarking tool for HTTP/2 and HTTP/1.1. If built with spdylay (http://tatsuhiro-t.github.io/spdylay/) library, it also -supports SPDY protocol. It supports SSL/TLS and clear text for both -HTTP/2 and SPDY. +supports SPDY protocol. It supports SSL/TLS and clear text for all +supported protocols. Basic Usage ----------- @@ -22,29 +22,37 @@ In order to set benchmark settings, specify following 3 options. If ``auto`` is given, the number of given URIs is used. Default: ``auto`` +For SSL/TLS connection, the protocol will be negotiated via ALPN/NPN. +You can set specific protocols in ``--npn-list`` option. For +cleartext connection, the default protocol is HTTP/2. To change the +protocol in cleartext connection, use ``--no-tls-proto`` option. For +convenience, ``--h1`` option forces HTTP/1.1 for both cleartext and +SSL/TLS connections. + Here is a command-line to perform benchmark to URI \https://localhost using total 100000 requests, 100 concurrent clients and 10 max -concurrent streams:: +concurrent streams: + +.. code-block:: text $ h2load -n100000 -c100 -m10 https://localhost -The benchmarking result looks like this:: +The benchmarking result looks like this: - finished in 0 sec, 385 millisec and 851 microsec, 2591 req/s, 1689 kbytes/s - requests: 1000 total, 1000 started, 1000 done, 1000 succeeded, 0 failed, 0 errored - status codes: 1000 2xx, 0 3xx, 0 4xx, 0 5xx - traffic: 667500 bytes total, 28700 bytes headers, 612000 bytes data +.. code-block:: text -The number of ``failed`` is the number of requests returned with non -2xx status. The number of ``error`` is the number of ``failed`` plus -the number of requests which failed with connection error. + finished in 7.08s, 141164.80 req/s, 555.33MB/s + requests: 1000000 total, 1000000 started, 1000000 done, 1000000 succeeded, 0 failed, 0 errored, 0 timeout + status codes: 1000000 2xx, 0 3xx, 0 4xx, 0 5xx + traffic: 4125025824 bytes total, 11023424 bytes headers (space savings 93.07%), 4096000000 bytes data + min max mean sd +/- sd + time for request: 15.31ms 146.85ms 69.78ms 9.26ms 92.43% + time for connect: 1.08ms 25.04ms 10.71ms 9.80ms 64.00% + time to 1st byte: 25.36ms 184.96ms 79.11ms 53.97ms 78.00% + req/s (client) : 1412.04 1447.84 1426.52 10.57 63.00% -The number of ``total`` in ``traffic`` is the received application -data. If SSL/TLS is used, this number is calculated after decryption. -The number of ``headers`` is the sum of payload size of response -HEADERS (or SYN_REPLY for SPDY). This number comes before -decompressing header block. The number of ``data`` is the sum of -response body. +See the h2load manual page :ref:`h2load-1-output` section for the +explanation of the above numbers. Flow Control ------------