More Related Content
Similar to 世界一速い他人のふんどしを使ったタイルサーバ
Similar to 世界一速い他人のふんどしを使ったタイルサーバ (20)
世界一速い他人のふんどしを使ったタイルサーバ
- 4. お前誰?
田渕 直 (たぶち なおし), @n_tabee
お勤め先: (株) トレック - 仙台の小さなシステム屋さん –
「うぇるなび」という送迎プランニングサービスを開発
2015/10/54
ベース地図が
OSM
- 5. 何の話?
H2O: DeNA が開発・公開している httpd
https://github.com/h2o/h2o
をフォークして、タイルサーバに改造した:
https://github.com/ntabee/h2o-tile
※ DeNA社・大元の H2O コミッタの方々は無関係です
2015/10/55
既存のタイル実装で (たぶん) 最速 (の一つ)
- 7. なぜ H2O で?
! tileman (osm.jp のタイルサーバ, nginx) がうまく動かせなかった
(Ubuntu 14, 15 and Debian 8, 詳しい方教えてください)
! せっかくなので
! 新鮮で
! コードベースが小さくて
! HTTP2 対応のものを
いじってみよう!
! ○年ぶりにC言語で遊んでみたい
2015/10/57
- 12. ベンチマーク
wrk を使って簡単なベンチマーク:
! i4770K 上の VM, 仮想4コア
! あらかじめ用意した約77万個のタイルを10秒間 GET
! クライアントとサーバは同ホスト (分けると LAN がボトルネック)
2015/10/612
Running 10s test @ http://localhost:8080/
4 threads and 1000 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 4.08ms 4.70ms 210.40ms 91.20%
Req/Sec 38.46k 12.43k 99.92k 77.72%
(中略)
1535421 requests in 10.07s, 7.11GB read
Requests/sec: 152439.26
Transfer/sec: 722.99MB
- 13. Running 10s test @ http://localhost:8080/
4 threads and 1000 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 4.08ms 4.70ms 210.40ms 91.20%
Req/Sec 38.46k 12.43k 99.92k 77.72%
中略)
1535421 requests in 10.07s, 7.11GB read
Requests/sec: 152439.26
Transfer/sec: 722.99MB
Running 10s test @ http://localhost/
4 threads and 1000 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 92.52ms 232.91ms 1.75s 91.27%
Req/Sec 11.69k 5.73k 28.45k 67.00%
(中略)
466463 requests in 10.03s, 3.20GB read
Socket errors: connect 0, read 0, write 0, timeout 271
Requests/sec: 46499.53
Transfer/sec: 327.15MB
nginxとの比較
「nginx + URL書き換えの Lua スクリプト」を、同条件で測定
2015/10/613
H2O-tile nginx (+ Lua)
チューニングなしだと3倍ぐらい違う
- 14. Running 10s test @ http://localhost:8080/
4 threads and 1000 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 4.08ms 4.70ms 210.40ms 91.20%
Req/Sec 38.46k 12.43k 99.92k 77.72%
中略)
1535421 requests in 10.07s, 7.11GB read
Requests/sec: 152439.26
Transfer/sec: 722.99MB
「nginx + URL書き換えの Lua スクリプト」を、同条件で測定
H2O-tile
Running 10s test @ http://localhost/
4 threads and 1000 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 92.52ms 232.91ms 1.75s 91.27%
Req/Sec 11.69k 5.73k 28.45k 67.00%
(中略)
466463 requests in 10.03s, 3.20GB read
Socket errors: connect 0, read 0, write 0, timeout 271
Requests/sec: 46499.53
Transfer/sec: 327.15MB
nginx (+ Lua)
nginxとの比較
2015/10/614
nginx (+ Lua)
チューニングなしだと3倍ぐらい違う
※ チューニング次第で 差になるはず (たぶん)
H2O-tile の強み: ほぼノーチューンでも速い
- 16. まとめ
! H2O を改造してタイルサーバをつくった
! チューニングなしならば nginx より速い
! 稼働ホストを (条件付きで) オープンにします:
http://a.tile.michisuji.com:8080/tiles/{z}/{x}/{y}.png
https://a.tile.michisuji.com:8081/...
2015/10/616