RoadRunner 3.3.1 → 4.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (57) hide show
  1. data/Rakefile +8 -13
  2. data/bin/controller.rb +74 -0
  3. data/bin/host_mgr.rb +69 -0
  4. data/bin/nbd_prepare.sh +87 -0
  5. data/conf/servers.yaml +29 -0
  6. data/controller/dd.sh +91 -0
  7. data/controller/mysql.rb +73 -0
  8. data/controller/mysql.sh +9 -0
  9. data/controller/svn.sh +48 -0
  10. data/controller/wrap.rb +49 -0
  11. data/lib/roadrunner.rb +11 -9
  12. data/lib/rrmonitor.rb +174 -0
  13. data/lib/run.rb +66 -27
  14. data/log/dd.log +129 -0
  15. data/log/log.rb +17 -0
  16. data/log/monitor/Pi-Monitor-Performance/10.250.3.26/Pi-Monitor-Performance/ifstat.log +239 -0
  17. data/log/monitor/Pi-Monitor-Performance/10.250.3.26/Pi-Monitor-Performance/iostat_3.log +668 -0
  18. data/log/monitor/Pi-Monitor-Performance/10.250.3.26/Pi-Monitor-Performance/vmstat_3.log +81 -0
  19. data/log/monitor/Pi-Monitor-Performance/10.250.3.26/Pi-Monitor-Performance/while__1_0___do_sar_-u_-d_3_10__done.log +2248 -0
  20. data/log/monitor/Pi-Monitor-Performance/10.250.3.26/Pi-Monitor-Performance/while__1_0___do_sar_-u_-n_DEV_3_10__done.log +719 -0
  21. data/log/monitor/Pi-Monitor-Performance/10.250.3.27/Pi-Monitor-Performance/ifstat.log +245 -0
  22. data/log/monitor/Pi-Monitor-Performance/10.250.3.27/Pi-Monitor-Performance/iostat_3.log +677 -0
  23. data/log/monitor/Pi-Monitor-Performance/10.250.3.27/Pi-Monitor-Performance/vmstat_3.log +83 -0
  24. data/log/monitor/Pi-Monitor-Performance/10.250.3.27/Pi-Monitor-Performance/while__1_0___do_sar_-u_-d_3_10__done.log +2276 -0
  25. data/log/monitor/Pi-Monitor-Performance/10.250.3.27/Pi-Monitor-Performance/while__1_0___do_sar_-u_-n_DEV_3_10__done.log +737 -0
  26. data/log/monitor/Pi-Monitor-Performance/10.250.3.28/Pi-Monitor-Performance/ifstat.log +246 -0
  27. data/log/monitor/Pi-Monitor-Performance/10.250.3.28/Pi-Monitor-Performance/iostat_3.log +677 -0
  28. data/log/monitor/Pi-Monitor-Performance/10.250.3.28/Pi-Monitor-Performance/vmstat_3.log +83 -0
  29. data/log/monitor/Pi-Monitor-Performance/10.250.3.28/Pi-Monitor-Performance/while__1_0___do_sar_-u_-d_3_10__done.log +2195 -0
  30. data/log/monitor/Pi-Monitor-Performance/10.250.3.28/Pi-Monitor-Performance/while__1_0___do_sar_-u_-n_DEV_3_10__done.log +737 -0
  31. data/log/monitor/Pi-Monitor-Performance/10.250.3.29/Pi-Monitor-Performance/ifstat.log +247 -0
  32. data/log/monitor/Pi-Monitor-Performance/10.250.3.29/Pi-Monitor-Performance/iostat_3.log +686 -0
  33. data/log/monitor/Pi-Monitor-Performance/10.250.3.29/Pi-Monitor-Performance/vmstat_3.log +84 -0
  34. data/log/monitor/Pi-Monitor-Performance/10.250.3.29/Pi-Monitor-Performance/while__1_0___do_sar_-u_-d_3_10__done.log +2386 -0
  35. data/log/monitor/Pi-Monitor-Performance/10.250.3.29/Pi-Monitor-Performance/while__1_0___do_sar_-u_-n_DEV_3_10__done.log +828 -0
  36. data/log/monitor/Pi-Monitor-Performance/10.250.3.30/Pi-Monitor-Performance/ifstat.log +249 -0
  37. data/log/monitor/Pi-Monitor-Performance/10.250.3.30/Pi-Monitor-Performance/iostat_3.log +686 -0
  38. data/log/monitor/Pi-Monitor-Performance/10.250.3.30/Pi-Monitor-Performance/vmstat_3.log +84 -0
  39. data/log/monitor/Pi-Monitor-Performance/10.250.3.30/Pi-Monitor-Performance/while__1_0___do_sar_-u_-d_3_10__done.log +2304 -0
  40. data/log/monitor/Pi-Monitor-Performance/10.250.3.30/Pi-Monitor-Performance/while__1_0___do_sar_-u_-n_DEV_3_10__done.log +664 -0
  41. data/log/monitor/Pi-Monitor-Performance/10.250.6.30/Pi-Monitor-Performance/ifstat.log +240 -0
  42. data/log/monitor/Pi-Monitor-Performance/10.250.6.30/Pi-Monitor-Performance/iostat_3.log +1334 -0
  43. data/log/monitor/Pi-Monitor-Performance/10.250.6.30/Pi-Monitor-Performance/vmstat_3.log +82 -0
  44. data/log/monitor/Pi-Monitor-Performance/10.250.6.30/Pi-Monitor-Performance/while__1_0___do_sar_-u_-d_3_10__done.log +9048 -0
  45. data/log/monitor/Pi-Monitor-Performance/10.250.6.30/Pi-Monitor-Performance/while__1_0___do_sar_-u_-n_DEV_3_10__done.log +968 -0
  46. data/log/stdout.log +0 -0
  47. data/log/stdout.log.20100307 +349 -0
  48. data/log/svn.log +502 -0
  49. data/test/download_processes.rb +38 -0
  50. data/test/pi_monitor.rb +45 -0
  51. metadata +54 -17
  52. data/lib/roadrunner_stdout.log +0 -168
  53. data/lib/roadrunner_stdout.log.20090519 +0 -262
  54. data/lib/roadrunner_stdout.log.20090521 +0 -47
  55. data/lib/roadrunner_stdout.log.20090524 +0 -290
  56. data/test/roadrunner_stdout.log +0 -170
  57. data/test/roadrunner_stdout.log.20090429 +0 -394
@@ -0,0 +1,9 @@
1
+ #!/bin/sh
2
+ /etc/init.d/mysql stop
3
+ rm -rf /home/cuizheng/mysql/*
4
+ sync
5
+ cp /home/admin/data /home/cuizheng/mysql/
6
+ sync
7
+ /etc/init.d/mysql start
8
+
9
+ ruby /home/cuizheng/controller/mysql.rb
@@ -0,0 +1,48 @@
1
+ #!/bin/sh
2
+ #file-name=svn.sh
3
+
4
+ cd /home/cuizheng
5
+ #LOG=/home/cuizheng/log/nbd_perf_svn_`date +"%Y-%m-%d=%H:%M:%S"`.log
6
+ LOG=/home/cuizheng/log/svn.log
7
+
8
+
9
+ cd /home/cuizheng/file1
10
+ rm -rf *
11
+ sync
12
+ cp /root/code ./ -r
13
+ sync
14
+ rm -rf /home/cuizheng/file2/*
15
+ sync
16
+
17
+
18
+ i=1
19
+
20
+ while [ $i -le 10 ];
21
+ do
22
+
23
+ START=`date +"%s"`
24
+ mv /home/cuizheng/file1/* /home/cuizheng/file2/
25
+ sync
26
+ END=`date +"%s"`
27
+ echo "
28
+ mv /home/cuizheng/file1/* /home/cuizheng/file2/
29
+ sync
30
+ START:$START,END:$END,SPEND:$((END-START))
31
+
32
+ " >>$LOG
33
+
34
+ START=`date +"%s"`
35
+ mv /home/cuizheng/file2/* /home/cuizheng/file1/
36
+ sync
37
+ END=`date +"%s"`
38
+ echo "
39
+ mv /home/cuizheng/file2/* /home/cuizheng/file1/
40
+ sync
41
+ START:$START,END:$END,SPEND:$((END-START))
42
+
43
+ " >> $LOG
44
+
45
+ i=$(($i + 1))
46
+ done
47
+
48
+ exit 1
@@ -0,0 +1,49 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ module RoadRunnerModule
4
+
5
+ class Wrap
6
+
7
+ def initialize(opt={})
8
+ @SHELL=opt[:sh]
9
+ @NUM=opt[:n]||10
10
+ @log=opt[:log]
11
+ @PIDS=[]
12
+ @log.debug "Wrap initialize parameters => #{opt.inspect}"
13
+ end
14
+
15
+
16
+ def start!
17
+ @log.info "DSMP perftest start!".center(60,'*')
18
+
19
+ @NUM.times do|i|
20
+ @log.info "sh #{@SHELL} >> #{@SHLOG} 2>&1"
21
+ @PIDS << Process.fork do
22
+ @log.info `sh #{@SHELL} 2>&1`
23
+ end
24
+ end
25
+
26
+ @log.info "Waiting Processes => #{@PIDS.inspect}"
27
+ Process.waitall
28
+ @log.info "Processes down."
29
+ end
30
+
31
+
32
+ def end!
33
+ @PIDS.each do |x|
34
+ @log.debug %x"kill -9 #{x}"
35
+ end
36
+ end
37
+
38
+ end
39
+
40
+
41
+ module Work
42
+ def self.work(n,log,sh)
43
+ svn=Wrap.new({:n=>n,:log=>log,:sh=>sh })
44
+ svn.start!
45
+ end
46
+ end
47
+
48
+
49
+ end
@@ -10,12 +10,7 @@ require 'benchmark'
10
10
  require 'logger'
11
11
  require 'pp'
12
12
 
13
- require 'init'
14
- require 'action'
15
- require 'ended'
16
- require 'run'
17
- require 'report'
18
- require 'rrhelper'
13
+ Dir[File.join(File.dirname(__FILE__),"*.rb")].select{|x|not (x =~ /.*model\.rb/ || x =~ /.*db\.rb/ || x =~ /.*roadrunner\.rb/)}.each { |x| require x }
19
14
 
20
15
  class RoadRunner
21
16
 
@@ -34,18 +29,25 @@ class RoadRunner
34
29
 
35
30
  def initialize(opts={})
36
31
  # => DEBUG < INFO < WARN < ERROR < FATAL < UNKNOWN
37
- opts = {:out=>"roadrunner_stdout.log",:frequency=>'daily',:size=>1048576,:level=>Logger::ERROR}.merge opts
32
+ opts = {:out=>File.join(File.dirname(__FILE__),'..','log',"stdout.log"),:frequency=>'daily',:size=>1048576,:level=>Logger::DEBUG}.merge opts
38
33
  @users,@iterations,@longest,@userId,@iterationId=1,1,0,0,0
39
34
  @initBlk,@actBlk,@endBlk=proc{},proc{},proc{}
40
35
  @global,@transactions={},{}
41
36
  @log=Logger.new(opts[:out],opts[:frequency],opts[:size])
42
37
  @log.level=opts[:level]
43
- # => mode : sequence,thread
38
+ # => mode : sequence<default>,thread|t,process|p
44
39
  @mode='sequence'
45
40
 
46
41
  if block_given? then
47
- require 'active_record'
42
+ begin
43
+ gem 'active_record'
44
+ require 'active_record'
45
+ rescue Exception => e
46
+ require 'activerecord'
47
+ end
48
+
48
49
  require 'db'
50
+ require "model"
49
51
 
50
52
  session = {}
51
53
  _session = yield session
@@ -0,0 +1,174 @@
1
+ require "rubygems"
2
+ require "net/ssh"
3
+ require 'fileutils'
4
+
5
+ module RoadRunnerModule
6
+
7
+ =begin
8
+ RRMonitor is used for Xnix system.
9
+ =end
10
+
11
+ class RRMonitor
12
+ def initialize(opt={:server=>"0.0.0.0", :username=>"admin", :password=>"123456"})
13
+ raise(ArgumentError,"Logger is needed!") unless opt[:log]
14
+ @log=opt[:log]
15
+
16
+ @server=opt[:server]
17
+
18
+ begin
19
+ @sess=Net::SSH.start(opt[:server], opt[:username], :password => opt[:password],:timeout => 120)
20
+ @log.info "#{opt[:server]} ssh connection OK."
21
+ rescue Exception => e
22
+ @log.error e
23
+ @log.error opt.inspect
24
+ raise e
25
+ end
26
+
27
+
28
+ @log.info("monitor initialize.".center(60,"*"))
29
+ @log.debug("monitor => #{self.inspect}")
30
+
31
+ @ts=( opt[:ts] || Time.now.to_i )
32
+
33
+ @path="#{File.join File.dirname(__FILE__),'..','log'}/monitor/#{@ts}"
34
+ @log.info "monitor local log path :#{@path}"
35
+
36
+ @rpath="~/.monit/#{@ts}"
37
+ @log.info "monitor remote log path(rpath) :#{@rpath}"
38
+
39
+ @sess.exec!("rm -rf #{@rpath}")
40
+ @sess.exec!("mkdir -p #{@rpath}")
41
+
42
+ @pids={}
43
+ end
44
+
45
+ =begin
46
+ run!(cmd) =>
47
+ the cmd will be execed at remote server(0),
48
+ and the stdout will write in log file.
49
+
50
+ cmd =>[
51
+ 'ifstat',# network io
52
+ 'iostat 3',# disk io
53
+ 'vmstat 3',# memory info
54
+ 'while((1>0));do sar -u -d 3 10; done',# disk and cpu info
55
+ 'while((1>0));do sar -u -n DEV 3 10; done'# network and cpu info
56
+ ]
57
+
58
+ "while((1>0));do #{cmd}; done" is needed for non-consist output cmd.
59
+
60
+ cmd sample =>
61
+
62
+ run!(["while((1>0));do /home/admin/apsara/build/debug64/bin/ku --command=getallpart --appname=blog1 --interactive=false|tail -n1; done"])
63
+
64
+ when exec!(cmd)
65
+ =>
66
+ exec!("while((1>0));do /home/admin/apsara/build/debug64/bin/ku --command=getallpart --appname=blog1 --interactive=false|tail -n1; done >> #{kupath} 2>/dev/null &")
67
+ =end
68
+
69
+ def run!(cmd=['ifstat','iostat 3','while((1>0));do sar -u -d 3 10; done','vmstat 3','while((1>0));do sar -u -n DEV 3 10; done'])
70
+ (@log.error "run!(cmd) cmd type require array.";exit) unless cmd.is_a?(Array)
71
+ (@log.error "run!(cmd) require commands.";exit) if cmd.none?
72
+
73
+ @cmd=cmd
74
+
75
+ begin
76
+ @log.info("RUN!".center(60,"*"))
77
+ @log.debug @server
78
+ cmd.each { |e| self.exec!(e)}
79
+ rescue Exception => e
80
+ @log.error("#{self.inspect} run error!")
81
+ @log.error(e.to_s)
82
+ # raise e
83
+ end
84
+
85
+ end
86
+
87
+ def exec!(cmd)
88
+ # >> cmd='while((1>0));do sar -u -d 3 10; # done';cmdpath="#{cmd.gsub(/([^a-zA-Z0-9\-])/,'_')}.log"
89
+ # => "while__1_0___do_sar_-u_-d_3_10__done.log"
90
+
91
+ # cmdpath="#{@rpath}/#{cmd.gsub(/[\s|\t|\$|\`|\(|\)|\&|\>|\<|\;|\||\'|\"]/,'_')}.log"
92
+ cmdpath="#{@rpath}/#{cmd.gsub(/[^a-zA-Z0-9\-]/,'_')}.log"
93
+ @cmdpath=cmdpath
94
+
95
+ @log.debug "#{cmd} path => #{cmdpath}"
96
+ @log.info "Start #{cmd}.".center(60,"*")
97
+
98
+ @log.debug("#{cmd} >> #{cmdpath} 2>/dev/null &")
99
+ @sess.exec!("#{cmd} >> #{cmdpath} 2>/dev/null &")
100
+
101
+ @pids[cmd]=@sess.exec!("echo $!")
102
+ @log.debug("#{cmd} pid => #{@pids[:ku]}")
103
+ end
104
+
105
+ def stop!
106
+ @pids.each do |key,value|
107
+ @sess.exec!("kill -9 #{value}")
108
+ @log.info("#{key} => #{value} stop!")
109
+ end
110
+
111
+ # if other user exec the same cmd,
112
+ # below cmd will kill all of the cmd.
113
+
114
+ # @sess.exec!(%q@ps axf|grep while|grep -v grep|awk '{printf "%s\n",$1}'|xargs kill -9@)
115
+ #
116
+ # @cmd.each { |e|
117
+ # @sess.exec!(%q@ps axf|grep "#{e}"|grep -v grep|awk '{printf "%s\n",$1}'|xargs kill -9@)
118
+ # }
119
+
120
+ @log.debug @server
121
+ @log.info("Monitor STOP!".center(60,"*"))
122
+ end
123
+
124
+ def collect
125
+ @log.debug "mkdir -p #{@path}/#{@server}"
126
+ %x{mkdir -p #{@path}/#{@server}}
127
+
128
+ path = @path.gsub('~',`echo ~`.gsub(/[\r\n]/,''))
129
+ @log.info "Collecting...".center(60,"*")
130
+ @log.debug "collect path => #{path}/#{@server}"
131
+ `scp -r admin@#{@server}:#{@rpath} #{path}/#{@server}`
132
+ @log.info "collected files => #{Dir[path+'/'+@server+'/**/*'].join($/)}"
133
+ end
134
+
135
+ #-----------------------------monit method--------------------------------#
136
+
137
+ def self.monit(servers,log,cmd=['ifstat','iostat 3','while((1>0));do sar -u -d 3 10; done','vmstat 3','while((1>0));do sar -u -n DEV 3 10; done'],ts="PerformanceTest")
138
+
139
+ case servers
140
+ when Hash
141
+ # do nothing
142
+ when String
143
+ File.open( servers ) { |yf|
144
+ begin
145
+ servers=YAML::load( yf )
146
+ rescue Exception => e
147
+ log.error("Servers' config YAML Load Error!Plz check your yaml file => #{servers}.#{$/}#{e.to_s}")
148
+ exit 1
149
+ end
150
+ }
151
+ end
152
+
153
+ _servers = {}
154
+
155
+ servers.each do |ip,obj|
156
+ _servers[ip] = RoadRunnerModule::RRMonitor.new({:server=>ip, :log=>log, :username=>obj[:username], :password=>obj[:password], :ts=>obj[:obj]||ts})
157
+
158
+ _servers[ip].run! cmd
159
+ end
160
+
161
+ yield
162
+
163
+ _servers.each do |k,v|
164
+ v.stop!
165
+ v.collect
166
+ end
167
+
168
+ end
169
+
170
+ end
171
+
172
+ end
173
+
174
+
data/lib/run.rb CHANGED
@@ -8,42 +8,81 @@ module RoadRunnerModule
8
8
  @thread_pool = {}
9
9
  @counter = 0
10
10
 
11
- iterationBlk = if(@mode!='thread') then
12
- proc {
13
- @iterations.times do |iterationId|
14
- @iterationId=iterationId
11
+ @log.debug "Mode => #{@mode}"
12
+ iterationBlk = case @mode
13
+ when /thread/,/t/ then
14
+ proc {
15
15
  @users.times do |userId|
16
- @userId=userId
17
- rcost = self.transaction('Action',&@actBlk)
18
- # => the below sentence cost a lot of system resource
19
- # => if you run for production result,keep it annotated!!!
20
- # self.log.debug "IterationID is #{self.iterationId};UserID is #{self.userId};This Action Cost #{rcost} seconds"
21
- @longest = (@longest<rcost)?rcost:@longest
16
+ @thread_pool[Thread.start(){
17
+ @iterations.times do |iterationId|
18
+ rcost = self.transaction('Action',&@actBlk)
19
+ self.log.debug "IterationID is #{self.iterationId};UserID is #{self.userId};This Action Cost #{rcost} seconds"
20
+ @longest = (@longest<rcost)?rcost:@longest
21
+ @thread_pool[Thread.current][:iterationId] = iterationId
22
+ end
23
+ @counter += 1
24
+ }]={:userId=>userId}
22
25
  end
23
- end}
24
- elsif(@mode=='thread')
25
- proc {
26
- @users.times do |userId|
27
- @thread_pool[Thread.start(){
28
- @iterations.times do |iterationId|
26
+ # @thread_pool.keys.each{|t|t.join}
27
+ while @counter != @users do
28
+ Thread.pass
29
+ end
30
+ }
31
+ when /process/,/p/ then
32
+ proc {
33
+ ppid=Process.pid
34
+ @log.info("Main Process pid => #{ppid}")
35
+
36
+ pids=[]
37
+ @users.times { |userId|
38
+ pids << Process.fork {
39
+ @userId=userId
40
+ @iterations.times do |iterationId|
41
+ @iterationId=iterationId
42
+ rcost = self.transaction('Action',&@actBlk)
43
+ @longest = (@longest<rcost)?rcost:@longest
44
+ end
45
+ @log.info("<PID:#{Process.pid}> going down.Longest job cost #{@longest}")
46
+
47
+ Process.kill("HUP", ppid)
48
+ }
49
+ }
50
+
51
+ switch=true
52
+ c=0
53
+ Signal.trap("HUP", proc { @log.info("One User(Process) done."); (switch = false;p "Main process<#{Process.pid}> going down.") if ((c+=1) == @users) })
54
+
55
+ @log.info "Waiting Processes => #{pids.inspect}"
56
+
57
+ p "Processes<#{pids.inspect}> working."
58
+ while switch
59
+ STDOUT.puts '.'
60
+ sleep 5
61
+ end
62
+ p $/
63
+
64
+ Process.waitall
65
+ @log.info "Processes down."
66
+ }
67
+ else
68
+ proc {
69
+ @iterations.times do |iterationId|
70
+ @iterationId=iterationId
71
+ @users.times do |userId|
72
+ @userId=userId
29
73
  rcost = self.transaction('Action',&@actBlk)
30
- self.log.debug "IterationID is #{self.iterationId};UserID is #{self.userId};This Action Cost #{rcost} seconds"
74
+ # => the below sentence cost a lot of system resource
75
+ # => if you run for production result,keep it annotated!!!
76
+ # self.log.debug "IterationID is #{self.iterationId};UserID is #{self.userId};This Action Cost #{rcost} seconds"
31
77
  @longest = (@longest<rcost)?rcost:@longest
32
- @thread_pool[Thread.current][:iterationId] = iterationId
33
78
  end
34
- @counter += 1
35
- }]={:userId=>userId}
36
- end
37
- # @thread_pool.keys.each{|t|t.join}
38
- while @counter != @users do
39
- Thread.pass
40
- end
79
+ end
41
80
  }
42
81
  end
43
82
 
44
83
  p ' '+"RoadRunner".center(50, '*')
45
- p ' *'+"---Run , on your way.".rjust(72, ' ')+'*'
46
- p ' *'*12
84
+ p ' *'+"---Run , on your way.".rjust(48, ' ')+'*'
85
+ p ' '+'*'*50
47
86
  p
48
87
  p " Running......"
49
88
  @rep = Benchmark::measure(&iterationBlk)
@@ -0,0 +1,129 @@
1
+ dd 50mb start
2
+ dd 50mb start
3
+ dd 50mb start
4
+
5
+ dd if=/dev/zero of=./nbd_perf_test_file_612eb7fd-c817-4203-9ee7-567db65e5fae.dat bs=512k count=102
6
+ sync
7
+ START:1266895933,END:1266896097,SPEND:164
8
+
9
+
10
+ rm dd document start
11
+
12
+ dd if=/dev/zero of=./nbd_perf_test_file_f16c2c97-c75c-496b-b9fd-e6f29b42f123.dat bs=512k count=102
13
+ sync
14
+ START:1266895933,END:1266896251,SPEND:318
15
+
16
+
17
+ rm dd document start
18
+
19
+ rm -rf dd_tmp_f9c1f5a6-6721-420a-b186-bc16d40e0d47
20
+ sync
21
+ START:1266896251,END:1266896388,SPEND:137
22
+
23
+
24
+
25
+ dd if=/dev/zero of=./nbd_perf_test_file_984b4f07-86e8-43f1-a0c1-000672519a32.dat bs=512k count=102
26
+ sync
27
+ START:1266895933,END:1266896388,SPEND:455
28
+
29
+
30
+ rm dd document start
31
+ dd 50mb start
32
+
33
+ rm -rf dd_tmp_bd42c07c-59ca-4082-9c77-292c0d63e56e
34
+ sync
35
+ START:1266896097,END:1266896388,SPEND:291
36
+
37
+
38
+ dd 50mb start
39
+
40
+ rm -rf dd_tmp_b4d4ff24-a1f1-4f52-aa81-c59d3a6abb0c
41
+ sync
42
+ START:1266896388,END:1266896692,SPEND:304
43
+
44
+
45
+ dd 50mb start
46
+
47
+ dd if=/dev/zero of=./nbd_perf_test_file_c1f1714e-077a-46e7-b95c-c371d75a5b5b.dat bs=512k count=102
48
+ sync
49
+ START:1266896388,END:1266896692,SPEND:304
50
+
51
+
52
+ rm dd document start
53
+
54
+ rm -rf dd_tmp_273ae817-fc22-4ca0-b5ad-0d458ba6a602
55
+ sync
56
+ START:1266896692,END:1266896710,SPEND:18
57
+
58
+
59
+ dd 50mb start
60
+
61
+ dd if=/dev/zero of=./nbd_perf_test_file_4b7f13b6-9627-41e2-a39f-7bfeba2da865.dat bs=512k count=102
62
+ sync
63
+ START:1266896388,END:1266896992,SPEND:604
64
+
65
+
66
+
67
+ dd if=/dev/zero of=./nbd_perf_test_file_a0a41b4f-83a6-4494-b3b1-f0a3401d7aed.dat bs=512k count=102
68
+ sync
69
+ START:1266896710,END:1266896992,SPEND:282
70
+
71
+
72
+ rm dd document start
73
+ rm dd document start
74
+
75
+ dd if=/dev/zero of=./nbd_perf_test_file_a42539c7-95cf-4764-9091-9aef95bf05e5.dat bs=512k count=102
76
+ sync
77
+ START:1266896692,END:1266896992,SPEND:300
78
+
79
+
80
+ rm dd document start
81
+
82
+ rm -rf dd_tmp_37815f72-f8eb-4e3f-9d6d-5ed47744976d
83
+ sync
84
+ START:1266896992,END:1266896993,SPEND:1
85
+
86
+
87
+
88
+ rm -rf dd_tmp_e15d6bfd-8946-40d9-8ee3-b8c7d0535734
89
+ sync
90
+ START:1266896992,END:1266896993,SPEND:1
91
+
92
+
93
+
94
+ rm -rf dd_tmp_b323674e-653e-47e4-97a1-4943930d894b
95
+ sync
96
+ START:1266896992,END:1266896993,SPEND:1
97
+
98
+
99
+ DD-Performance Total START:1266895933,END:1266896993,SPEND:1060
100
+ dd 50mb start
101
+ dd 50mb start
102
+
103
+ dd if=/dev/zero of=./nbd_perf_test_file_efc5672a-b42a-47fe-862f-82561d375800.dat bs=512k count=102
104
+ sync
105
+ START:1266896993,END:1266897300,SPEND:307
106
+
107
+
108
+ rm dd document start
109
+
110
+ dd if=/dev/zero of=./nbd_perf_test_file_6e473dcc-8d18-4fad-b655-005d36667ff3.dat bs=512k count=102
111
+ sync
112
+ START:1266896993,END:1266897300,SPEND:307
113
+
114
+
115
+ rm dd document start
116
+
117
+ rm -rf dd_tmp_71a917a3-d7de-413b-bef4-e6f298be6a0d
118
+ sync
119
+ START:1266897300,END:1266897300,SPEND:0
120
+
121
+
122
+
123
+ rm -rf dd_tmp_74236bfd-68d8-4f07-8a9e-129628819936
124
+ sync
125
+ START:1266897300,END:1266897300,SPEND:0
126
+
127
+
128
+ DD-Performance Total START:1266895933,END:1266897300,SPEND:1367
129
+ DD-Performance Total START:1266895933,END:1266897300,SPEND:1367