2012-05-20 10 views
6

Quiero comparar cuántos inicios de sesión por segundo son posibles con un (propio) proveedor de omniauth. Necesito averiguar cómo es el rendimiento de estas solicitudes de omniauth/oauth, y si esta autenticación es de todos modos escalable.¿Cómo se comparan los inicios de sesión por segundo con omniauth/oauth? (ruby + rspec)

lo que tengo hasta ahora:

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 

el valor por defecto son 10 los usuarios que se autentican en paralelo a través del proveedor de foo oauth.

resultados:

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!!!! 

que realmente no tienen idea de lo que estoy haciendo y si el código es correcto.

Respuesta

0

Si bien no tengo mucha experiencia con OAuth/Omniauth, ~ 500ms de tiempo de renderizado para este tipo de acción, cuando se combinan con los tiempos generales de render de Rails (supongo), no parecen tan exagerados. OMI, confíe en sus puntos de referencia.

Cuestiones relacionadas