Imported Upstream version 1.0.0
[platform/upstream/nghttp2.git] / doc / h2load.1
1 .\" Man page generated from reStructuredText.
2 .
3 .TH "H2LOAD" "1" "May 16, 2015" "1.0.0" "nghttp2"
4 .SH NAME
5 h2load \- HTTP/2 benchmarking tool
6 .
7 .nr rst2man-indent-level 0
8 .
9 .de1 rstReportMargin
10 \\$1 \\n[an-margin]
11 level \\n[rst2man-indent-level]
12 level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
13 -
14 \\n[rst2man-indent0]
15 \\n[rst2man-indent1]
16 \\n[rst2man-indent2]
17 ..
18 .de1 INDENT
19 .\" .rstReportMargin pre:
20 . RS \\$1
21 . nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
22 . nr rst2man-indent-level +1
23 .\" .rstReportMargin post:
24 ..
25 .de UNINDENT
26 . RE
27 .\" indent \\n[an-margin]
28 .\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
29 .nr rst2man-indent-level -1
30 .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
31 .in \\n[rst2man-indent\\n[rst2man-indent-level]]u
32 ..
33 .SH SYNOPSIS
34 .sp
35 \fBh2load\fP [OPTIONS]... [URI]...
36 .SH DESCRIPTION
37 .sp
38 benchmarking tool for HTTP/2 and SPDY server
39 .INDENT 0.0
40 .TP
41 .B <URI>
42 Specify URI to access.   Multiple URIs can be specified.
43 URIs are used  in this order for each  client.  All URIs
44 are used, then  first URI is used and then  2nd URI, and
45 so  on.  The  scheme, host  and port  in the  subsequent
46 URIs, if present,  are ignored.  Those in  the first URI
47 are used solely.
48 .UNINDENT
49 .SH OPTIONS
50 .INDENT 0.0
51 .TP
52 .B \-n, \-\-requests=<N>
53 Number of requests.
54 .sp
55 Default: \fB1\fP
56 .UNINDENT
57 .INDENT 0.0
58 .TP
59 .B \-c, \-\-clients=<N>
60 Number of concurrent clients.
61 .sp
62 Default: \fB1\fP
63 .UNINDENT
64 .INDENT 0.0
65 .TP
66 .B \-t, \-\-threads=<N>
67 Number of native threads.
68 .sp
69 Default: \fB1\fP
70 .UNINDENT
71 .INDENT 0.0
72 .TP
73 .B \-i, \-\-input\-file=<FILE>
74 Path of a file with multiple URIs are separated by EOLs.
75 This option will disable URIs getting from command\-line.
76 If \(aq\-\(aq is given as <FILE>, URIs will be read from stdin.
77 URIs are used  in this order for each  client.  All URIs
78 are used, then  first URI is used and then  2nd URI, and
79 so  on.  The  scheme, host  and port  in the  subsequent
80 URIs, if present,  are ignored.  Those in  the first URI
81 are used solely.
82 .UNINDENT
83 .INDENT 0.0
84 .TP
85 .B \-m, \-\-max\-concurrent\-streams=(auto|<N>)
86 Max concurrent streams to  issue per session.  If "auto"
87 is given, the number of given URIs is used.
88 .sp
89 Default: \fBauto\fP
90 .UNINDENT
91 .INDENT 0.0
92 .TP
93 .B \-w, \-\-window\-bits=<N>
94 Sets the stream level initial window size to (2**<N>)\-1.
95 For SPDY, 2**<N> is used instead.
96 .sp
97 Default: \fB30\fP
98 .UNINDENT
99 .INDENT 0.0
100 .TP
101 .B \-W, \-\-connection\-window\-bits=<N>
102 Sets  the  connection  level   initial  window  size  to
103 (2**<N>)\-1.  For SPDY, if <N>  is strictly less than 16,
104 this option  is ignored.   Otherwise 2**<N> is  used for
105 SPDY.
106 .sp
107 Default: \fB30\fP
108 .UNINDENT
109 .INDENT 0.0
110 .TP
111 .B \-H, \-\-header=<HEADER>
112 Add/Override a header to the requests.
113 .UNINDENT
114 .INDENT 0.0
115 .TP
116 .B \-p, \-\-no\-tls\-proto=<PROTOID>
117 Specify ALPN identifier of the  protocol to be used when
118 accessing http URI without SSL/TLS.
119 Available protocols: spdy/2, spdy/3, spdy/3.1 and h2c
120 .sp
121 Default: \fBh2c\fP
122 .UNINDENT
123 .INDENT 0.0
124 .TP
125 .B \-d, \-\-data=<FILE>
126 Post FILE to  server.  The request method  is changed to
127 POST.
128 .UNINDENT
129 .INDENT 0.0
130 .TP
131 .B \-v, \-\-verbose
132 Output debug information.
133 .UNINDENT
134 .INDENT 0.0
135 .TP
136 .B \-\-version
137 Display version information and exit.
138 .UNINDENT
139 .INDENT 0.0
140 .TP
141 .B \-h, \-\-help
142 Display this help and exit.
143 .UNINDENT
144 .SH OUTPUT
145 .INDENT 0.0
146 .TP
147 .B requests
148 .INDENT 7.0
149 .TP
150 .B total
151 The number of requests h2load was instructed to make.
152 .TP
153 .B started
154 The number of requests h2load has started.
155 .TP
156 .B done
157 The number of requests completed.
158 .TP
159 .B succeeded
160 The number of requests completed successfully.  Only HTTP status
161 code 2xx or3xx are considered as success.
162 .TP
163 .B failed
164 The number of requests failed, including HTTP level failures
165 (non\-successful HTTP status code).
166 .TP
167 .B errored
168 The number of requests failed, except for HTTP level failures.
169 status code.  This is the subset of the number reported in
170 \fBfailed\fP and most likely the network level failures or stream
171 was reset by RST_STREAM.
172 .UNINDENT
173 .TP
174 .B status codes
175 The number of status code h2load received.
176 .TP
177 .B traffic
178 .INDENT 7.0
179 .TP
180 .B total
181 The number of bytes received from the server "on the wire".  If
182 requests were made via TLS, this value is the number of decrpyted
183 bytes.
184 .TP
185 .B headers
186 The number of response header bytes from the server without
187 decompression.  For HTTP/2, this is the sum of the payload of
188 HEADERS frame.  For SPDY, this is the sum of the payload of
189 SYN_REPLY frame.
190 .TP
191 .B data
192 The number of response body bytes received from the server.
193 .UNINDENT
194 .TP
195 .B time for request
196 .INDENT 7.0
197 .TP
198 .B min
199 The minimum time taken for request and response.
200 .TP
201 .B max
202 The maximum time taken for request and response.
203 .TP
204 .B mean
205 The mean time taken for request and response.
206 .TP
207 .B sd
208 The standard deviation of the time taken for request and response.
209 .TP
210 .B +/\- sd
211 The fraction of the number of requests within standard deviation
212 range (mean +/\- sd) against total number of successful requests.
213 .UNINDENT
214 .TP
215 .B time for connect
216 .INDENT 7.0
217 .TP
218 .B min
219 The minimum time taken to connect to a server.
220 .TP
221 .B max
222 The maximum time taken to connect to a server.
223 .TP
224 .B mean
225 The mean time taken to connect to a server.
226 .TP
227 .B sd
228 The standard deviation of the time taken to connect to a server.
229 .TP
230 .B +/\- sd
231 The  fraction  of  the   number  of  connections  within  standard
232 deviation range (mean  +/\- sd) against total  number of successful
233 connections.
234 .UNINDENT
235 .TP
236 .B time for 1st byte (of (decrypted in case of TLS) application data)
237 .INDENT 7.0
238 .TP
239 .B min
240 The minimum time taken to get 1st byte from a server.
241 .TP
242 .B max
243 The maximum time taken to get 1st byte from a server.
244 .TP
245 .B mean
246 The mean time taken to get 1st byte from a server.
247 .TP
248 .B sd
249 The standard deviation of the time taken to get 1st byte from a
250 server.
251 .TP
252 .B +/\- sd
253 The fraction of the number of connections within standard
254 deviation range (mean +/\- sd) against total number of successful
255 connections.
256 .UNINDENT
257 .UNINDENT
258 .SH FLOW CONTROL
259 .sp
260 h2load sets large flow control window by default, and effectively
261 disables flow control to avoid under utilization of server
262 performance.  To set smaller flow control window, use \fI\%\-w\fP and
263 \fI\%\-W\fP options.  For example, use \fB\-w16 \-W16\fP to set default
264 window size described in HTTP/2 and SPDY protocol specification.
265 .SH SEE ALSO
266 .sp
267 \fInghttp(1)\fP, \fInghttpd(1)\fP, \fInghttpx(1)\fP
268 .SH AUTHOR
269 Tatsuhiro Tsujikawa
270 .SH COPYRIGHT
271 2012, 2015, Tatsuhiro Tsujikawa
272 .\" Generated by docutils manpage writer.
273 .