[HTTP2] WindowsServerでHTTP2のベンチマーク

  • 2
    Like
  • 0
    Comment
More than 1 year has passed since last update.

テストの概要

WindowsServerのTechnicalPreviewのIISでHTTP2が通信できるようなのでテストしてみます。

Azure上にサーバを配置し、ローカルにもWindowsServerを用意します。
レイテンシを計測したいのでサーバーのリージョンは米国東部(バージニア州)を選びました。
物理的な距離は1万キロ以上あります。

サーバーには大量の画像データを配置し、バースト的なリクエストに対してHTTP2がどの程度有効かを検証してみます。

環境

サーバー

 Windows Server Technical Preview IIS8
 仮想マシンインスタンスは「A2」

img7.png

クライアント

 HTTP2 Windows Server Tecnical Preview IE11
 HTTP Windows8.1 IE11

テストデータ

こちらからサンプルデータを取得しました。
http://www.vision.caltech.edu/Image_Datasets/Caltech101/Caltech101.html
101_ObjectCategories.tar.gz

この中で使う画像データは次のディレクトリのものです。
car_side、airplanes、Faces、Faces_easy、Leopards、Motorbikes、watch

画像数 容量
3,037ファイル 55.3 MB

htmlの内容は次のようなものです。

<html>
<head>
</head>
<body>
<h1>HTTP2 TEST</h1>
<img src="img/car_side/image_0001.jpg">
<img src="img/car_side/image_0002.jpg">
<img src="img/car_side/image_0003.jpg">
・・・・・
<img src="img/watch/image_0199.jpg">
<img src="img/watch/image_0200.jpg">
</body>
</html>

F12開発者ツールで計測します。
IEのキャッシュは一回毎にクリアしています。

Windows8.1からは確実にHTTP1.1が使われていることを確認しておきます。
img4.png

結果

プロトコル 1回目 2回目 3回目 平均
HTTP
(Windows8.1 IE11)
83.82秒 83.31秒 82.67秒 83.26秒
HTTP2
(WindowsServer TecnicalPreview IE11)
23.51秒 25.04秒 23.40秒 23.98秒

HTTP2はHTTP1.1に比べて3.47倍のスピード。
HTTPの約28%の時間でコンテンツを取得可能という結果になりました。

HTTP2
img6.png

HTTP1.1
img3.png

手順のメモ

Microsoft Azureに「WindowsServer TecnicalPreview」をインストールします。
IISをインストールしてファイアウォールとIEのセキュリティをOFFにします。
Azureポータルの仮想マシンの設定で80番と443番を許可します。
ブラウザから80番の疎通確認をします。
IISの管理画面から自己署名証明書の作成を行い、443に証明書をバインドします。
ブラウザから443番の疎通確認をします。

ローカルのHyper-Vに「Windows Server Tecnical Preview」をインストールします。
自己署名警告は無視します。

補足

クライアントOSにはWindows10のtecnical Previewを使いたかったのですが、Windows10のIEの開発者ツールはUIが変わっていて、ネットワークの項目に時間が表示されませんでした。したがって、なるべく同じ条件で計測したかったのでクライアントもWindows Serverを使用しました。