0
+require File.dirname(__FILE__) + "/server_test"
0
+# supported servers: mongrel, emongrel, ebb, thin
0
+# use another name an a already open port for anything else
0
+usage = "e.g. server_bench response_size ebb:4001 mongrel:4002 other:4003"
0
+ name, port = server.split(':')
0
+ servers << ServerTest.new(name, port)
0
+ 'response_size' => [0.1,1,5,7,10,15,18,20,23,25,30,40,45,50].map { |i|
0
+ [i, "ab -t 3 -q -c 50 http://0.0.0.0:PORT/bytes/#{bytes}"]
0
+ 'wait_fib' => [1,20,40,60,80,100].map { |c|
0
+ [c, "ab -t 3 -q -c #{c} http://0.0.0.0:PORT/periodical_activity/fibonacci/15"]
0
+ 'wait' => [0.5,1,1.5,2,2.5,3,3.5].map { |t|
0
+ [t, "ab -t 6 -q -c 50 http://0.0.0.0:PORT/periodical_activity/wait/#{t}"]
0
+ 'post_size' => [0.1,1,5,7,10,15,18,20,23,25,30,35,37,40,45,50].map { |l|
0
+ size = (l * 1024).to_i
0
+ fn = "/tmp/ebb_post_trial_#{size}"
0
+ File.open(fn, 'w+') { |f| f.write("C"*size) } unless FileTest.exists?(fn)
0
+ [l, "ab -t 6 -q -c 50 -p #{fn} http://0.0.0.0:PORT/test_post_length"]
0
+ 'concurrency' => [1,2,5,10,20,25,30,35,40,50,75,100].map { |c|
0
+ [c, "ab -t 3 -q -c #{c} http://0.0.0.0:PORT/bytes/1"]
0
+unless trials.has_key? benchmark
0
+ puts("must specify valid benchmark: #{trials.keys.join(" or ")}")
0
+trap('INT') { exit(1) }
0
+dumpfile = "#{benchmark}.dump"
0
+ results = ServerTestResults.open(dumpfile)
0
+ servers.each { |s| s.start }
0
+ trials[benchmark].rand_each do |x, cmd|
0
+ servers.rand_each do |server|
0
+ result = server.trial(cmd)
0
+ result[:benchmark] = benchmark
0
+ puts "\n\nkilling servers"
0
+ servers.each { |server| server.kill }
0
+ results.write(dumpfile)
Comments
No one has commented yet.