ry / ebb fork watch download tarball
public
Description: web server
Homepage: http://ebb.rubyforge.org
Clone URL: git://github.com/ry/ebb.git
Ryan Dahl (author)
Tue Feb 26 16:29:33 -0800 2008
commit  9c5ab1c13e9097b4f25bd84a4d25c563a51a4eba
tree    47d8433728ff80568c415f6d3a27084790742708
parent  833f936c0f410b9c66edcccbceb177f0058bb722
ebb / benchmark / request_benchmark.rb
100644 32 lines (29 sloc) 0.74 kb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#!/usr/bin/env ruby
$: << File.expand_path(File.dirname(__FILE__))
 
require 'server_test'
 
trap('INT') { exit(1) }
dumpfile = 'request_results.dump'
begin
  results = ServerTestResults.open(dumpfile)
  $servers.each { |s| s.start }
  sleep 3
  [0,5,7,10,15,18,20,23,25,30,40,45,50].map { |i| i.kilobytes }.rand_each do |size|
    $servers.rand_each do |server|
      if r = server.post_trial(size)
        results << r
      else
        puts "error!"
        server.kill
        sleep 0.5
        server.start
        sleep 2
      end
      sleep 2 # give the other process some time to cool down?
    end
    puts "---"
  end
ensure
  puts "\n\nkilling servers"
  $servers.each { |server| server.kill }
  results.write(dumpfile)
end