6

(独自の)omniauthプロバイダーで1秒あたりのログイン数をベンチマークしたいと思います。このomniauth/oauthリクエストのパフォーマンスを確認する必要があります。また、この認証がとにかくスケーラブルであるかどうかを確認する必要がありますか?

私がこれまでに得たもの:

    def performance_auth(user_count=10)
      bm = Benchmark.realtime do
        user_count.times do |n|
          fork do
            click_on 'Logout'
            omniauth_config_mock(:provider => "foo", :uid => n, :email => "foo#{n}@example.net")
            visit "/account/auth/foo/"
          end
        end
        Process.waitall
      end
      puts "#{user_count} users Benchmark: #{bm}"
      bm
  end

デフォルトは、oauthプロバイダーfooを介して並列認証する10人のユーザーです。

結果:

only 2 users can authenticate parallel in 1 sec (is this possible?)

10 users: 5.090777 sec
20 users: 10.471208 sec
50 users: 111.565979 sec ~ 2min!!!!

私は自分が何をしているのか、そしてこのコードが正しいかどうか本当にわかりません。

4

1 に答える 1

0

私はOAuth/Omniauthの経験があまりありませんが、この種のアクションのレンダリング時間は最大500ミリ秒であり、Rails全体のレンダリング時間(私が想定している)と組み合わせると、それほど取得されていないようです。IMO、ベンチマークを信頼してください。

于 2012-11-09T08:31:19.413 に答える