2012-05-20 22 views
6

मैं बेंचमार्क करना चाहता हूं कि एक (स्वयं) omniauth प्रदाता के साथ प्रति सेकंड कितने लॉग इन संभव हैं। मुझे यह पता लगाने की ज़रूरत है कि इस omniauth/oauth अनुरोधों का प्रदर्शन कैसे होता है, और यदि यह प्रमाणीकरण स्केलेबल में है?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 

डिफ़ॉल्ट 10 उपयोगकर्ताओं को, जो OAuth प्रदाता foo के माध्यम से समानांतर को प्रमाणित कर रहे हैं।

परिणाम:

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

मैं सच में नहीं पता कि मैं क्या कर रहा है और इस कोड सही है यदि।

उत्तर

0

जबकि मुझे OAuth/Omniauth के साथ अधिक अनुभव नहीं है, ~ 500ms इस तरह की कार्रवाई के लिए समय प्रस्तुत करते हैं, जब समग्र रेल (मैं मान रहा हूं) के साथ संयुक्त रूप से प्रस्तुत करता हूं, ऐसा लगता है कि अब तक नहीं मिलता है। आईएमओ, अपने बेंचमार्क पर भरोसा करें।