Imported Upstream version 1.0.0
[platform/upstream/nghttp2.git] / doc / h2load.1.rst
1
2 .. GENERATED by help2rst.py.  DO NOT EDIT DIRECTLY.
3
4 .. program:: h2load
5
6 h2load(1)
7 =========
8
9 SYNOPSIS
10 --------
11
12 **h2load** [OPTIONS]... [URI]...
13
14 DESCRIPTION
15 -----------
16
17 benchmarking tool for HTTP/2 and SPDY server
18
19 .. describe:: <URI>
20
21     Specify URI to access.   Multiple URIs can be specified.
22     URIs are used  in this order for each  client.  All URIs
23     are used, then  first URI is used and then  2nd URI, and
24     so  on.  The  scheme, host  and port  in the  subsequent
25     URIs, if present,  are ignored.  Those in  the first URI
26     are used solely.
27
28 OPTIONS
29 -------
30
31 .. option:: -n, --requests=<N>
32
33     Number of requests.
34
35     Default: ``1``
36
37 .. option:: -c, --clients=<N>
38
39     Number of concurrent clients.
40
41     Default: ``1``
42
43 .. option:: -t, --threads=<N>
44
45     Number of native threads.
46
47     Default: ``1``
48
49 .. option:: -i, --input-file=<FILE>
50
51     Path of a file with multiple URIs are separated by EOLs.
52     This option will disable URIs getting from command-line.
53     If '-' is given as <FILE>, URIs will be read from stdin.
54     URIs are used  in this order for each  client.  All URIs
55     are used, then  first URI is used and then  2nd URI, and
56     so  on.  The  scheme, host  and port  in the  subsequent
57     URIs, if present,  are ignored.  Those in  the first URI
58     are used solely.
59
60 .. option:: -m, --max-concurrent-streams=(auto|<N>)
61
62     Max concurrent streams to  issue per session.  If "auto"
63     is given, the number of given URIs is used.
64
65     Default: ``auto``
66
67 .. option:: -w, --window-bits=<N>
68
69     Sets the stream level initial window size to (2\*\*<N>)-1.
70     For SPDY, 2**<N> is used instead.
71
72     Default: ``30``
73
74 .. option:: -W, --connection-window-bits=<N>
75
76     Sets  the  connection  level   initial  window  size  to
77     (2**<N>)-1.  For SPDY, if <N>  is strictly less than 16,
78     this option  is ignored.   Otherwise 2\*\*<N> is  used for
79     SPDY.
80
81     Default: ``30``
82
83 .. option:: -H, --header=<HEADER>
84
85     Add/Override a header to the requests.
86
87 .. option:: -p, --no-tls-proto=<PROTOID>
88
89     Specify ALPN identifier of the  protocol to be used when
90     accessing http URI without SSL/TLS.
91     Available protocols: spdy/2, spdy/3, spdy/3.1 and h2c
92
93     Default: ``h2c``
94
95 .. option:: -d, --data=<FILE>
96
97     Post FILE to  server.  The request method  is changed to
98     POST.
99
100 .. option:: -v, --verbose
101
102     Output debug information.
103
104 .. option:: --version
105
106     Display version information and exit.
107
108 .. option:: -h, --help
109
110     Display this help and exit.
111
112 OUTPUT
113 ------
114
115 requests
116   total
117     The number of requests h2load was instructed to make.
118   started
119     The number of requests h2load has started.
120   done
121     The number of requests completed.
122   succeeded
123     The number of requests completed successfully.  Only HTTP status
124     code 2xx or3xx are considered as success.
125   failed
126     The number of requests failed, including HTTP level failures
127     (non-successful HTTP status code).
128   errored
129     The number of requests failed, except for HTTP level failures.
130     status code.  This is the subset of the number reported in
131     ``failed`` and most likely the network level failures or stream
132     was reset by RST_STREAM.
133
134 status codes
135   The number of status code h2load received.
136
137 traffic
138   total
139     The number of bytes received from the server "on the wire".  If
140     requests were made via TLS, this value is the number of decrpyted
141     bytes.
142   headers
143     The number of response header bytes from the server without
144     decompression.  For HTTP/2, this is the sum of the payload of
145     HEADERS frame.  For SPDY, this is the sum of the payload of
146     SYN_REPLY frame.
147   data
148     The number of response body bytes received from the server.
149
150 time for request
151   min
152     The minimum time taken for request and response.
153   max
154     The maximum time taken for request and response.
155   mean
156     The mean time taken for request and response.
157   sd
158     The standard deviation of the time taken for request and response.
159   +/- sd
160     The fraction of the number of requests within standard deviation
161     range (mean +/- sd) against total number of successful requests.
162
163 time for connect
164   min
165     The minimum time taken to connect to a server.
166   max
167     The maximum time taken to connect to a server.
168   mean
169     The mean time taken to connect to a server.
170   sd
171     The standard deviation of the time taken to connect to a server.
172   +/- sd
173     The  fraction  of  the   number  of  connections  within  standard
174     deviation range (mean  +/- sd) against total  number of successful
175     connections.
176
177 time for 1st byte (of (decrypted in case of TLS) application data)
178   min
179     The minimum time taken to get 1st byte from a server.
180   max
181     The maximum time taken to get 1st byte from a server.
182   mean
183     The mean time taken to get 1st byte from a server.
184   sd
185     The standard deviation of the time taken to get 1st byte from a
186     server.
187   +/- sd
188     The fraction of the number of connections within standard
189     deviation range (mean +/- sd) against total number of successful
190     connections.
191
192 FLOW CONTROL
193 ------------
194
195 h2load sets large flow control window by default, and effectively
196 disables flow control to avoid under utilization of server
197 performance.  To set smaller flow control window, use :option:`-w` and
198 :option:`-W` options.  For example, use ``-w16 -W16`` to set default
199 window size described in HTTP/2 and SPDY protocol specification.
200
201 SEE ALSO
202 --------
203
204 :manpage:`nghttp(1)`, :manpage:`nghttpd(1)`, :manpage:`nghttpx(1)`