HTTP2対応の性能測定ツールであるh2loadの出力結果の見方のメモです。一度理解すると不要になるのですが、ヘッダー圧縮のところと標準偏差(sd)のメモかな。あとtrafficeのところで出てくる“some insightful numbers”ってどんな数字? “いくつかの洞察に満ちた数字” って、分かる人おしえて。
$ h2load -n 400 -c 5 https://example.com/ starting benchmark... spawning thread #0: 5 total client(s). 400 total requests TLS Protocol: TLSv1.3 Cipher: TLS_AES_256_GCM_SHA384 Server Temp Key: X25519 253 bits Application protocol: h2c progress: 10% done progress: 20% done progress: 30% done progress: 40% done progress: 50% done progress: 60% done progress: 70% done progress: 80% done progress: 90% done progress: 100% done finished in 163.46ms, 2447.14 req/s, 1.45MB/s requests: 400 total, 400 started, 400 done, 400 succeeded, 0 failed, 0 errored, 0 timeout status codes: 400 2xx, 0 3xx, 0 4xx, 0 5xx traffic: 242.04KB (247845) total, 8.26KB (8460) headers (space savings 94.90%), 226.56KB (232000) data min max mean sd +/- sd time for request: 1.19ms 3.00ms 1.98ms 334us 72.00% time for connect: 1.21ms 1.69ms 1.39ms 179us 60.00% time to 1st byte: 3.40ms 4.47ms 4.01ms 519us 80.00% req/s : 490.98 500.60 497.56 4.03 80.00%
requests
項目 | 説明 |
---|---|
total | 実行指示されたリクエスト数。 |
started | 開始したリクエスト数。 |
done | 完了したリクエスト数。 |
succeeded | 正常終了したリクエスト数。 ステータスコード 2xx, 3xx のみ成功とみなす。 |
failed | 失敗したリクエスト数。 HTTPレベルの失敗(失敗したHTTPステータスコード)を含む。 |
errored | 失敗したリクエスト数。HTTPエラーは含まない。 “failed” で報告された数のサブセットで、ネットワーク障害やストリームリセットなどの可能性がある。 |
timeout | 接続が完了する前にタイムアウトしたリクエスト数。 “errored” で報告された数のサブセット。 |
status code
受信したステータスコードの数
traffic
項目 | 説明 |
---|---|
total | ネットワーク上でサーバから受信したバイト数。 TLS経由で要求された場合、この値は復号化されたバイト数。 |
headers | (圧縮から)解凍せずにサーバから送信されたレスポンスヘッダーのバイト数。 “sapce savings” はヘッダー圧縮の効率を示し、計算は以下。 (1 – (headers / 圧縮伸張後のヘッダーフィールドに使用されるバイト数))x100 ※1 HTTP/1.1の場合、ヘッダー圧縮がないため、通常0.00% ※2 HTTP/2とSPDYの場合、some insightful numbers. (訳がわかりません) (古いマニュアルではHTTP/2の場合ヘッダーフレームのペイロードの合計。SPDYはSYN_REPLYフレームのペイロードの合計とある) |
data | サーバーから受信したレスポンスボディーのバイト数 |
time for request
項目 | 説明 |
---|---|
min | 要求と応答にかかる最小時間 |
max | 要求と応答にかかる最大時間 |
mean | 要求と応答にかかる平均時間 |
sd | 要求と応答にかかる時間の標準偏差 |
+/- sd | 成功したリクエスト総数に対する標準偏差の範囲内のリクエスト数の割合 |
標準偏差と割合の補足
標準偏差は数値のばらつきをしめすもので、簡単にいうと平均から±sdの範囲に多くのデータがあつまっていることを示し、その割合が +/- sd 欄の割合という意味となります。
sdが小さければ平均に近いデータが多くて、逆に大きければ平均から離れているデータ多く、平均はあてにならないことを示します。
多くのデータがあつまるというのはデータが正規分布しているときの話なので、%の欄が約68%でれば理論通り。割合が低ければ多くがあつまるはずだけど、集まっていないってこと。のはず。
time for connect
項目 | 説明 |
---|---|
min | サーバーへの接続にかかる最小時間 |
max | サーバーへの接続にかかる最大時間 |
mean | サーバーへの接続にかかる平均時間 |
sd | サーバーへの接続にかかる時間の標準偏差 |
+/- sd | 成功した接続総数に対する標準偏差の範囲内の接続数の割合 |
time to 1st byte
(TLSの場合は復号化された)アプリケーションデータの先頭バイトを受信するのにかかる時間
項目 | 説明 |
---|---|
min | 最初のバイトを取得するのにかかる最小時間 |
max | 最初のバイトを取得するのにかかる最大時間 |
mean | 最初のバイトを取得するのにかかる平均時間 |
sd | 最初のバイトを取得するのにかかる時間の標準偏差 |
+/- sd | 成功した接続総数に対する標準偏差の範囲内の接続数の割合 |
req/s
項目 | 説明 |
---|---|
min | すべてのクライアントの1秒あたりの最小リクエスト数 |
max | すべてのクライアントの1秒あたりの最大リクエスト数 |
mean | すべてのクライアントの1秒あたりの平均リクエスト数 |
sd | 最初のバイトを取得するのにかかる時間の標準偏差 |
+/- sd | 成功した接続総数に対する標準偏差の範囲内の接続数の割合 |
コメント