[2016.6.18 時点の話] 実のところ,最新の Cygwin には libev および nghttp2 が含まれているので, h2load の機能を使うために,自分で nghttp2 をビルドする必要は無くなったのだが,それでも, nghttp2 をビルドするなら, Jansson および spdylay は, Cygwin にパッケージがないので,自分でビルドしなければならない。ただ,昨今の情勢からすると, spdylay はいらないかなとも思う。
—————————————————————————————————————————————————
以下の 2 ファイルが手元にある。ひとつは H2LOAD_dll_package_x86.zip で,もうひとつは H2LOAD_dll_package_x64.zip である。ダウンロードして展開し,コンソール上で,
> h2load -n100000 -c100 -m10 https://localhost
とでもやれば, Windows 上で h2load テストができる。
テストをやる場合はローカルにテストサーバを用意すべきだ。 -n -c -m の値によっては,対象サーバへのサイバー攻撃になりかねないからね。気を付けましょう。
前に,「なんかどう見ても使用前の結果のほうが速いように見えません???ナンデェ!」と書いたのだが,今回のテスト結果は興味深い。 HTTPS with HTTP/2 と HTTPS without HTTP/2 をご覧あれ。 HTTP/2 をサポートしているサーバは,していないサーバよりも同時ストリー ムをうまく処理している。 HTTP/2 の特長の一つが顕著に表れているわけだ。
さて,わが苦難の道の記録を書くことにしようかい (^_^;).
[注意]:以下の手順を踏むと, H2LOAD_dll_package_x64.zip のファイル群ができる。 H2LOAD_dll_package_x86.zip のファイルを手に入れるには, Windows x86 のパソコン上で setup-x86.exe を使って同じことをやらないといけない。
> pushd x:Cygwin
>gpg --import pubring.asc
gpg: key 676041BA: public key "Cygwin <cygwin@cygwin.com>" imported
gpg: Total number processed: 1
gpg: imported: 1
>gpg --verify setup-x86_64.exe.sig
gpg: assuming signed data in 'setup-x86_64.exe'
gpg: Signature made 10/19/15 04:38:02 東京 (標準時) using DSA key ID 676041BA
gpg: Good signature from "Cygwin <cygwin@cygwin.com>" [unknown]
gpg: WARNING: This key is not certified with a trusted signature!
gpg: There is no indication that the signature belongs to the owner.
Primary key fingerprint: 1169 DF9F 2273 4F74 3AA5 9232 A9A2 62FF 6760 41BA
$ pwd
☜ 現在位置の確認。$ mkdir Download
☜ ダウンロードファイル用。$ mkdir Source
☜ ソースファイル用。$ pwd
$ cd Download
$ lynx -source rawgit.com/transcode-open/apt-cyg/master/apt-cyg > apt-cyg
$ install apt-cyg /usr/local/bin
$ apt-cyg -m ftp://ftp.jaist.ac.jp/pub/cygwin/ update
$ apt-cyg install autoconf automake make libtool gcc-core gcc-g++
$ apt-cyg install cygport
$ cd /usr/src
$ wget http://dist.schmorp.de/libev/libev-4.20.tar.gz
$ wget https://github.com/fd00/yacp/raw/master/libev/libev-4.20-1bl1.cygport
$ wget https://github.com/fd00/yacp/raw/master/libev/libev-4.20-1bl1.src.patch
$ cygport ./libev-4.20-1bl1.cygport all
$ wget https://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/dev-libs/libev/files/libev-pc.patch
$ cygport ./libev-4.20-1bl1.cygport all
$ cd ~Download
$ wget https://sourceware.org/viewvc/cygwin-apps/genini/genini?revision=1.16&view=co
$ mv genini@revision=1.16 genini
$ install genini /usr/local/bin
$ cd /usr/src/libev-4.20-1bl1.x86_64/dist
$ cp -R libev /cygdrive/x/Apache24/htdocs/cygwin/x86_64/release
$ cd /cygdrive/x/Apache24/htdocs/cygwin
$ genini --recursive x86_64 | bzip2 -c > x86_64/setup.bz2
ここで出てくる Apache はテストサーバ用のもの。
setup-x86_64.exe を ‘-X (= --no-verify)’ オプションで起動。どうしても,自前リポに入れなかった。これって ‘Error Installing Cygwin (setup-x86_64.exe & setup-x86) – No setup.ini.sig found.’ と関係あるのかな? Achim Gratz のローカル版も試してみたが,何も変わりなし。
仕方ないので,マニュアルでインストール。なんてこったい!
$ install /usr/src/libev-4.20-1bl1.x86_64/inst/usr/bin/cygev-4.dll /usr/bin
$ mkdir /usr/include/libev
$ install /usr/src/libev-4.20-1bl1.x86_64/inst/usr/include/libev/ev* /usr/include/libev
(ev* = ev.h ev++.h event.h)
$ install /usr/src/libev-4.20-1bl1.x86_64/inst/usr/lib/libev.dll.a /usr/lib
$ install /usr/src/libev-4.20-1bl1.x86_64/inst/usr/lib/pkgconfig/libev.pc /usr/lib/pkgconfig
$ install /usr/src/libev-4.20-1bl1.x86_64/inst/usr/share/man/man3/ev.3.gz /usr/share/man/man3
$ apt-cyg install cmake
$ cd /usr/src
$ wget http://www.digip.org/jansson/releases/jansson-2.7.tar.bz2
$ wget https://github.com/fd00/yacp/raw/master/jansson/jansson-2.7-1bl1.cygport
$ wget https://github.com/fd00/yacp/raw/master/jansson/jansson-2.7-1bl1.src.patch
$ cygport ./jansson-2.7-1bl1.cygport all
$ install /usr/src/jansson-2.7-1bl1.x86_64/inst/usr/bin/cygjansson-4.dll /usr/bin
$ install /usr/src/jansson-2.7-1bl1.x86_64/inst/usr/include/ja* /usr/include
$ install /usr/src/jansson-2.7-1bl1.x86_64/inst/usr/lib/libjansson.dll.a /usr/lib
$ install /usr/src/jansson-2.7-1bl1.x86_64/inst/usr/lib/pkgconfig/jansson.pc /usr/lib/pkgconfig
$ apt-cyg install libxml2-devel CUnit
$ cd /usr/src
$ wget https://github.com/tatsuhiro-t/spdylay/releases/download/v1.3.2/spdylay-1.3.2.tar.xz
$ wget https://github.com/fd00/yacp/raw/master/spdylay/spdylay-1.3.2-1bl1.cygport
$ wget https://github.com/fd00/yacp/raw/master/spdylay/spdylay-1.3.2-1bl1.src.patch
$ cygport ./spdylay-1.3.2-1bl1.cygport all
$ apt-cyg install pkg-config
$ cygport ./spdylay-1.3.2-1bl1.cygport all
をもっ 1 回。$ install /usr/src/spdylay-1.3.2-1bl1.x86_64/inst/usr/bin/*.exe /usr/bin
$ install /usr/src/spdylay-1.3.2-1bl1.x86_64/inst/usr/bin/cygspdylay-7.dll /usr/bin
$ mkdir /usr/include/spdylay
$ install /usr/src/spdylay-1.3.2-1bl1.x86_64/inst/usr/include/spdylay/spd* /usr/include/spdylay
$ install /usr/src/spdylay-1.3.2-1bl1.x86_64/inst/usr/lib/libspdylay.dll.a /usr/lib
$ install /usr/src/spdylay-1.3.2-1bl1.x86_64/inst/usr/lib/pkgconfig/libspdylay.pc /usr/lib/pkgconfig
$ cd /usr/src
$ wget https://github.com/tatsuhiro-t/nghttp2/releases/download/v1.4.0/nghttp2-1.4.0.tar.xz
$ wget https://github.com/fd00/yacp/raw/master/nghttp2/nghttp2-1.4.0-1bl1.cygport
$ wget https://github.com/fd00/yacp/raw/master/nghttp2/nghttp2-1.4.0-1bl1.src.patch
$ cygport ./nghttp2-1.4.0-1bl1.cygport all
$ install /usr/src/nghttp2-1.4.0-1bl1.x86_64/inst/usr/bin/* /usr/bin
$ mkdir /usr/include/nghttp2
$ install /usr/src/nghttp2-1.4.0-1bl1.x86_64/inst/usr/include/nghttp2/*.h /usr/include/nghttp2
$ install /usr/src/nghttp2-1.4.0-1bl1.x86_64/inst/usr/lib/libnghttp2.dll.a /usr/lib
$ install /usr/src/nghttp2-1.4.0-1bl1.x86_64/inst/usr/lib/pkgconfig/* /usr/lib/pkgconfig
やり残し: setup-x86_64.exe で自前リポを使うこと。
追記(2016/1/4):
libev-4.22 と nghttp2-1.6.0 が出たので, h2load.exe をリビルドした。
This website uses cookies.
View Comments
こんにちは
これはかなりがんばりましたね。
準備だけで記事3個くらいかけそうだし、
大分お腹いっぱいになりそうですな。
それと数日前にうけたテストと同じgpgコマンドが(w
https://nghttp2.org/documentation/h2load-howto.html#basic-usage
これがh2loadコマンドですか、
これからベンチマークの主流になるかもしれませんね?覚えることがふえそうだけど、apacheとかどうするんだろう。
くりくりさん,こんにちは。
> 大分お腹いっぱいになりそうですな。
まさしくその通りで,初めは準備とテストなどは分けて書くつもりだったのですが,だんだん面倒くさくなって, 1 個になってしまいました(汗)。
> それと数日前にうけたテストと同じgpgコマンドが(w
考えてみたら, Windows 上での GnuPG の使い方を書いたことがなかったなと思って,この機会に書いておこうかと……まあ,コマンドなんて, LINUX となんら変わりませんが。
> これからベンチマークの主流になるかもしれませんね?
> apacheとかどうするんだろう。
HTTPS が増えて来たらそうなるでしょうね。 ab を https://localhost に対して使おうとしたら, SSL not compiled in; no https support が出ました。ディストリによっては,コンパイル時に SSL が入っている ab もあるんでしょうか?
Windows 上に限らず,今は自分でビルドしないと h2load を使えないようですが,そのうち, mod_http2 と同じように 各 Web server ソフトのコアに含まれるようになるんじゃないですかね。
おはようございます。
https://wiki.php.net/todo/php70#timetable
明日こそはphp7がでるのか?
期待しています。
todosの方でも話題にでましたが、
コアに対応していないプラグインやテーマ以外にもphpのバージョンもありそうなんで簡単にバージョンアップできないでしょうね。
じっくり検証しませんと
>mod_http2 と同じように 各 Web
http/2よりhttpsが広まらない無理でしょうから
まだまだ先なのかな?
くりくりさん,おはようございます。
> 明日こそはphp7がでるのか?
延びちゃったみたいですよ。昨夜つうか今朝っつうか,まりあちゃんを 10.1.9 にし,ついでに, phpMyAdmin を 4.5.2 にしました。そのときに,一応 Apache, ActivePerl, PHP も見たんですが,またもや Anatol のメールで, 12/3 になると書いてありました。相変わらず,何かに手こずっているんでしょうかねぇ?
> まだまだ先なのかな?
でしょうか?でも,始まったら雪崩を打つことがあるからなぁ,ネットの世界は。雪崩の兆しに気をつけないといけないですよね。