最小のRackアプリケーションをHerokuにデプロイしてベンチマークを計測してみた

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 あたりが上限だった。