|
7897e7c5
»
|
Ryan Dahl |
2008-02-26 |
clean up benchmark scripts |
1 |
#!/usr/bin/env ruby |
| |
2 |
|
| |
3 |
require File.dirname(__FILE__) + "/server_test" |
| |
4 |
# supported servers: mongrel, emongrel, ebb, thin |
| |
5 |
# use another name an a already open port for anything else |
| |
6 |
usage = "e.g. server_bench response_size ebb:4001 mongrel:4002 other:4003" |
| |
7 |
|
| |
8 |
benchmark = ARGV.shift |
| |
9 |
|
| |
10 |
servers = [] |
| |
11 |
ARGV.each do |server| |
| |
12 |
name, port = server.split(':') |
| |
13 |
servers << ServerTest.new(name, port) |
| |
14 |
end |
| |
15 |
|
| |
16 |
trials = { |
| |
17 |
'response_size' => [0.1,1,5,7,10,15,18,20,23,25,30,40,45,50].map { |i| |
| |
18 |
bytes = (i*1024).to_i |
| |
19 |
[i, "ab -t 3 -q -c 50 http://0.0.0.0:PORT/bytes/#{bytes}"] |
| |
20 |
}, |
| |
21 |
'wait_fib' => [1,20,40,60,80,100].map { |c| |
|
27577de1
»
|
Ryan Dahl |
2008-03-10 |
small changes to work for r... |
22 |
[c, "ab -t 3 -q -c #{c} http://0.0.0.0:PORT/periodical_activity/fibonacci/15"] |
|
f3387b21
»
|
Ryan Dahl |
2008-03-10 |
Added worker threads option. |
23 |
}, |
| |
24 |
'wait' => [0.5,1,1.5,2,2.5,3,3.5].map { |t| |
| |
25 |
[t, "ab -t 6 -q -c 50 http://0.0.0.0:PORT/periodical_activity/wait/#{t}"] |
|
7897e7c5
»
|
Ryan Dahl |
2008-02-26 |
clean up benchmark scripts |
26 |
}, |
|
0e2dc886
»
|
Ryan Dahl |
2008-02-27 |
web site and benchmark fixes |
27 |
'post_size' => [0.1,1,5,7,10,15,18,20,23,25,30,35,37,40,45,50].map { |l| |
|
7897e7c5
»
|
Ryan Dahl |
2008-02-26 |
clean up benchmark scripts |
28 |
size = (l * 1024).to_i |
| |
29 |
fn = "/tmp/ebb_post_trial_#{size}" |
| |
30 |
File.open(fn, 'w+') { |f| f.write("C"*size) } unless FileTest.exists?(fn) |
|
9d780efa
»
|
Ryan Dahl |
2008-02-28 |
many small bug fixes, mostl... |
31 |
[l, "ab -t 6 -q -c 50 -p #{fn} http://0.0.0.0:PORT/test_post_length"] |
|
7897e7c5
»
|
Ryan Dahl |
2008-02-26 |
clean up benchmark scripts |
32 |
}, |
|
e73fe87c
»
|
ryah |
2008-04-10 |
updates to benchmark scripts |
33 |
'concurrency' => [1,5,10,20,30,40,50,75,100].map { |c| |
| |
34 |
[c, "ab -t 10 -q -c #{c} http://0.0.0.0:PORT/bytes/1"] |
|
7897e7c5
»
|
Ryan Dahl |
2008-02-26 |
clean up benchmark scripts |
35 |
} |
| |
36 |
} |
| |
37 |
|
| |
38 |
unless trials.has_key? benchmark |
| |
39 |
puts("must specify valid benchmark: #{trials.keys.join(" or ")}") |
| |
40 |
exit 1 |
| |
41 |
end |
| |
42 |
|
| |
43 |
trap('INT') { exit(1) } |
| |
44 |
dumpfile = "#{benchmark}.dump" |
| |
45 |
begin |
| |
46 |
results = ServerTestResults.open(dumpfile) |
| |
47 |
servers.each { |s| s.start } |
| |
48 |
sleep 4 |
| |
49 |
trials[benchmark].rand_each do |x, cmd| |
| |
50 |
servers.rand_each do |server| |
| |
51 |
result = server.trial(cmd) |
| |
52 |
if result.nil? |
| |
53 |
server.kill |
| |
54 |
sleep 0.5 |
| |
55 |
server.start |
| |
56 |
sleep 2 |
| |
57 |
else |
| |
58 |
result[:benchmark] = benchmark |
| |
59 |
result[:input] = x |
| |
60 |
results << result |
| |
61 |
end |
|
27577de1
»
|
Ryan Dahl |
2008-03-10 |
small changes to work for r... |
62 |
sleep 1 |
|
7897e7c5
»
|
Ryan Dahl |
2008-02-26 |
clean up benchmark scripts |
63 |
end |
| |
64 |
puts "---" |
| |
65 |
end |
| |
66 |
ensure |
| |
67 |
puts "\n\nkilling servers" |
| |
68 |
servers.each { |server| server.kill } |
| |
69 |
results.write(dumpfile) |
|
0e2dc886
»
|
Ryan Dahl |
2008-02-27 |
web site and benchmark fixes |
70 |
end |