Heroku の Ruby スタックの性能が知りたかったので、 下記ような最小の Rack アプリケーションを Heroku にデプロイし、 Apatch Bentch でベンチマークを計測してみた。 Rack アプリケーションは unicorn とか使わず rackup コマンドで動かしている。
require "rack" class SampleApp def call(env) [200, { "Content-Type" => "text/html" }, ["Hello World"]] end end run SampleApp.new
計測結果は下表の通り。すべてのリクエストが成功したものだけを載せている。
合計リクエスト発行数&同時接続数 | Requests per second[#/sec] | Time per request(mean, across all concurrent requests)[ms] |
---|---|---|
-n 100 -c 100 | 33.51 | 29.838 |
-n 1000 -c 100 | 57.03 | 17.536 |
-n 1000 -c 1000 | 36.64 | 27.924 |
-n 3000 -c 1000 | 45.05 | 22.199 |
-n 2500 -c 2500 | 41.33 | 24.193 |
-n 3000 -c 2500 | 45.79 | 21.838 |
同時接続数は 2500、合計リクエスト数 3000 あたりが上限だった。