h2load(1) nghttp2 h2load(1)
NAME
h2load - HTTP/2 benchmarking tool
SYNOPSIS
h2load [OPTIONS]... [URI]...
DESCRIPTION
benchmarking tool for HTTP/2 and SPDY server
<URI> Specify URI to access. Multiple URIs can be specified. URIs
are used in this order for each client. All URIs are used,
then first URI is used and then 2nd URI, and so on. The
scheme, host and port in the subsequent URIs, if present,
are ignored. Those in the first URI are used solely.
OPTIONS
-n, --requests=<N>
Number of requests.
Default: 1
-c, --clients=<N>
Number of concurrent clients.
Default: 1
-t, --threads=<N>
Number of native threads.
Default: 1
-i, --input-file=<PATH>
Path of a file with multiple URIs are separated by EOLs. This
option will disable URIs getting from command-line. If '-' is
given as <PATH>, URIs will be read from stdin. URIs are used
in this order for each client. All URIs are used, then first
URI is used and then 2nd URI, and so on. The scheme, host
and port in the subsequent URIs, if present, are ignored.
Those in the first URI are used solely.
-m, --max-concurrent-streams=(auto|<N>)
Max concurrent streams to issue per session. If "auto" is
given, the number of given URIs is used.
Default: auto
-w, --window-bits=<N>
Sets the stream level initial window size to (2**<N>)-1. For
SPDY, 2**<N> is used instead.
Default: 30
-W, --connection-window-bits=<N>
Sets the connection level initial window size to
(2**<N>)-1. For SPDY, if <N> is strictly less than 16, this
option is ignored. Otherwise 2**<N> is used for SPDY.
Default: 30
-H, --header=<HEADER>
Add/Override a header to the requests.
--ciphers=<SUITE>
Set allowed cipher list. The format of the string is
described in OpenSSL ciphers(1).
-p, --no-tls-proto=<PROTOID>
Specify ALPN identifier of the protocol to be used when access-
ing http URI without SSL/TLS. Available protocols: spdy/2,
spdy/3, spdy/3.1 and h2c
Default: h2c
-d, --data=<PATH>
Post FILE to server. The request method is changed to POST.
-r, --rate=<N>
Specifies the fixed rate at which connections are cre-
ated. The rate must be a positive integer, represent-
ing the number of connections to be made per second. When
the rate is 0, the program will run as it normally does, creat-
ing connections at whatever variable rate it wants. The default
value for this option is 0.
-C, --num-conns=<N>
Specifies the total number of connections to create. The
total number of connections must be a positive integer. On
each connection, -m requests are made. The test stops once as
soon as the <N> connections have either completed or
failed. When the number of connections is 0, the program
will run as it normally does, creating as many connections as
it needs in order to make the -n requests specified. The
default value for this option is 0. The -n option is not
required if the -C option is being used.
-v, --verbose
Output debug information.
--version
Display version information and exit.
-h, --help
Display this help and exit.
OUTPUT
requests
total The number of requests h2load was instructed to make.
started
The number of requests h2load has started.
done The number of requests completed.
succeeded
The number of requests completed successfully. Only HTTP
status code 2xx or3xx are considered as success.
failed The number of requests failed, including HTTP level fail-
ures (non-successful HTTP status code).
errored
The number of requests failed, except for HTTP level
failures. This is the subset of the number reported in
failed and most likely the network level failures or
stream was reset by RST_STREAM.
status codes
The number of status code h2load received.
traffic
total The number of bytes received from the server "on the
wire". If requests were made via TLS, this value is the
number of decrpyted bytes.
headers
The number of response header bytes from the server with-
out decompression. For HTTP/2, this is the sum of the
payload of HEADERS frame. For SPDY, this is the sum of
the payload of SYN_REPLY frame.
data The number of response body bytes received from the
server.
time for request
min The minimum time taken for request and response.
max The maximum time taken for request and response.
mean The mean time taken for request and response.
sd The standard deviation of the time taken for request and
response.
+/- sd The fraction of the number of requests within standard
deviation range (mean +/- sd) against total number of
successful requests.
time for connect
min The minimum time taken to connect to a server.
max The maximum time taken to connect to a server.
mean The mean time taken to connect to a server.
sd The standard deviation of the time taken to connect to a
server.
+/- sd The fraction of the number of connections within
standard deviation range (mean +/- sd) against total
number of successful connections.
time for 1st byte (of (decrypted in case of TLS) application data)
min The minimum time taken to get 1st byte from a server.
max The maximum time taken to get 1st byte from a server.
mean The mean time taken to get 1st byte from a server.
sd The standard deviation of the time taken to get 1st byte
from a server.
+/- sd The fraction of the number of connections within standard
deviation range (mean +/- sd) against total number of
successful connections.
FLOW CONTROL
h2load sets large flow control window by default, and effectively dis-
ables flow control to avoid under utilization of server performance.
To set smaller flow control window, use -w and -W options. For exam-
ple, use -w16 -W16 to set default window size described in HTTP/2 and
SPDY protocol specification.
SEE ALSO
nghttp(1), nghttpd(1), nghttpx(1)
AUTHOR
Tatsuhiro Tsujikawa
COPYRIGHT
2012, 2015, Tatsuhiro Tsujikawa
1.2.1 August 14, 2015 h2load(1)
nghttp2 1.2.1 - Generated Sat Aug 15 10:51:44 CDT 2015
