Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

さくらのクラウドでh2oのベンチマーク

829 views

Published on

Benchmark of h2o web server software on sakura-cloud

Published in: Technology
  • Login to see the comments

さくらのクラウドでh2oのベンチマーク

  1. 1. さくらのクラウドで h2oのベンチマーク emasaka
  2. 2. h2o Webサーバー 奥 一穂氏(DeNA)作(2014〜) https://github.com/h2o/h2o
  3. 3. 特徴 爆速(らしい) 特にヘッダーのパースが速い(らしい) picohttpparser HTTP/2対応
  4. 4. ならばベンチマーク h2o vs. Apache httpd vs. Nginx
  5. 5. 要件 サーバーとクライアントと別の物理サーバーで ただし公衆網は通らないほうがいい 回線がボトルネックになりそう 安く(できればタダ)
  6. 6. さくらのクラウド 石狩第1 DCと石狩第2 DCから選べる サーバーは確実に分かれるが、建物内で通信するはず
  7. 7. こんな感じ ※写真は さくらインターネットのプレスリリース ( )から拝借 http://www.sakura.ad.jp/press/2011/0719_cedec.html
  8. 8. さくらのクラウド(続き) 日割り計算で借りられる OSCで2万円分のクーポンをもらった
  9. 9. 借りたサーバー 日割912円のプラン。 CPU:6コア メモリ:12GB ディスク:SSD Ubuntu 14.04 LTS を2台
  10. 10. 6コア $ nproc 6
  11. 11. 借りたサーバー(続き) クライアント:石狩第1 wrk サーバー:石狩第2 h2o Apache httpd Nginx
  12. 12. クライアントに wrkをインストール $ sudo apt-get update $ sudo apt-get install build-essential libssl-dev git $ git clone https://github.com/wg/wrk.git $ cd wrk $ make $ sudo cp wrk /usr/local/bin
  13. 13. サーバーに Apache httpdをインストー ル $ sudo apt-get install apache2 $ sudo vi /etc/apache2/ports.conf Listen 8002 $ sudo vi /etc/apache2/sites/sites-available/000-default.conf <VirtualHost *:8002> $ sudo service apache2 restart
  14. 14. サーバーに Nginxをインストール $ sudo apt-get install nginx-full $ sudo vi /etc/nginx/sites-available/default listen 8003 default_server; root /var/www/html $ sudo service nginx restart
  15. 15. h2oをインストール ローカルからAnsibleを実行
  16. 16. h2o設定 $ vi h2o.conf listen: 8001 hosts: "127.0.0.1.xip.io:8001": paths: /: file.dir: /var/www/html access-log: /dev/null
  17. 17. 共通コンテンツ $ sudo sh -c 'echo "<html></html>" > /var/www/html/index.html' クライアントからwgetでそれぞれアクセスして確認
  18. 18. 結果(h2o) $ wrk -c 500 -d 30 -t 5 http://hoge.example.com:8001/ Running 30s test @ http://hoge.example.com:8001/ 5 threads and 500 connections Thread Stats Avg Stdev Max +/- Stdev Latency 137.68ms 225.00ms 1.98s 86.18% Req/Sec 4.80k 2.20k 18.12k 75.19% 701376 requests in 30.01s, 149.83MB read Socket errors: connect 0, read 0, write 0, timeout 57 Requests/sec: 23368.91 Transfer/sec: 4.99MB
  19. 19. 結果(Apache httpd) $ wrk -c 500 -d 30 -t 5 http://hoge.example.com:8002/ Running 30s test @ http://hoge.example.com:8002/ 5 threads and 500 connections Thread Stats Avg Stdev Max +/- Stdev Latency 2.35ms 12.11ms 459.69ms 99.39% Req/Sec 4.43k 2.52k 13.62k 65.58% 528951 requests in 30.10s, 120.66MB read Requests/sec: 17574.07 Transfer/sec: 4.01MB
  20. 20. 結果(Nginx) $ wrk -c 500 -d 30 -t 5 http://hoge.example.com:8003/ Running 30s test @ http://hoge.example.com:8003/ 5 threads and 500 connections Thread Stats Avg Stdev Max +/- Stdev Latency 173.36ms 300.41ms 1.89s 86.39% Req/Sec 4.66k 2.39k 20.73k 73.19% 685059 requests in 30.10s, 167.87MB read Socket errors: connect 0, read 0, write 0, timeout 243 Requests/sec: 22759.04 Transfer/sec: 5.58MB
  21. 21. 比較 h2o速い。 Server Req h2o 701376 Apache httpd 528951 Nginx 685059
  22. 22. ただし 大きなデータだと実は3つにあまり差がない(Apache httpdが少し速い?) リクエスト処理 vs. I/O性能? h2oの例では面倒なのでログを出してない。それも有利?

×