RoadRunner 3.3.1 → 4.0.0
Sign up to get free protection for your applications and to get access to all the features.
- data/Rakefile +8 -13
- data/bin/controller.rb +74 -0
- data/bin/host_mgr.rb +69 -0
- data/bin/nbd_prepare.sh +87 -0
- data/conf/servers.yaml +29 -0
- data/controller/dd.sh +91 -0
- data/controller/mysql.rb +73 -0
- data/controller/mysql.sh +9 -0
- data/controller/svn.sh +48 -0
- data/controller/wrap.rb +49 -0
- data/lib/roadrunner.rb +11 -9
- data/lib/rrmonitor.rb +174 -0
- data/lib/run.rb +66 -27
- data/log/dd.log +129 -0
- data/log/log.rb +17 -0
- data/log/monitor/Pi-Monitor-Performance/10.250.3.26/Pi-Monitor-Performance/ifstat.log +239 -0
- data/log/monitor/Pi-Monitor-Performance/10.250.3.26/Pi-Monitor-Performance/iostat_3.log +668 -0
- data/log/monitor/Pi-Monitor-Performance/10.250.3.26/Pi-Monitor-Performance/vmstat_3.log +81 -0
- 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
- 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
- data/log/monitor/Pi-Monitor-Performance/10.250.3.27/Pi-Monitor-Performance/ifstat.log +245 -0
- data/log/monitor/Pi-Monitor-Performance/10.250.3.27/Pi-Monitor-Performance/iostat_3.log +677 -0
- data/log/monitor/Pi-Monitor-Performance/10.250.3.27/Pi-Monitor-Performance/vmstat_3.log +83 -0
- 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
- 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
- data/log/monitor/Pi-Monitor-Performance/10.250.3.28/Pi-Monitor-Performance/ifstat.log +246 -0
- data/log/monitor/Pi-Monitor-Performance/10.250.3.28/Pi-Monitor-Performance/iostat_3.log +677 -0
- data/log/monitor/Pi-Monitor-Performance/10.250.3.28/Pi-Monitor-Performance/vmstat_3.log +83 -0
- 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
- 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
- data/log/monitor/Pi-Monitor-Performance/10.250.3.29/Pi-Monitor-Performance/ifstat.log +247 -0
- data/log/monitor/Pi-Monitor-Performance/10.250.3.29/Pi-Monitor-Performance/iostat_3.log +686 -0
- data/log/monitor/Pi-Monitor-Performance/10.250.3.29/Pi-Monitor-Performance/vmstat_3.log +84 -0
- 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
- 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
- data/log/monitor/Pi-Monitor-Performance/10.250.3.30/Pi-Monitor-Performance/ifstat.log +249 -0
- data/log/monitor/Pi-Monitor-Performance/10.250.3.30/Pi-Monitor-Performance/iostat_3.log +686 -0
- data/log/monitor/Pi-Monitor-Performance/10.250.3.30/Pi-Monitor-Performance/vmstat_3.log +84 -0
- 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
- 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
- data/log/monitor/Pi-Monitor-Performance/10.250.6.30/Pi-Monitor-Performance/ifstat.log +240 -0
- data/log/monitor/Pi-Monitor-Performance/10.250.6.30/Pi-Monitor-Performance/iostat_3.log +1334 -0
- data/log/monitor/Pi-Monitor-Performance/10.250.6.30/Pi-Monitor-Performance/vmstat_3.log +82 -0
- 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
- 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
- data/log/stdout.log +0 -0
- data/log/stdout.log.20100307 +349 -0
- data/log/svn.log +502 -0
- data/test/download_processes.rb +38 -0
- data/test/pi_monitor.rb +45 -0
- metadata +54 -17
- data/lib/roadrunner_stdout.log +0 -168
- data/lib/roadrunner_stdout.log.20090519 +0 -262
- data/lib/roadrunner_stdout.log.20090521 +0 -47
- data/lib/roadrunner_stdout.log.20090524 +0 -290
- data/test/roadrunner_stdout.log +0 -170
- data/test/roadrunner_stdout.log.20090429 +0 -394
data/Rakefile
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
#
|
2
2
|
# To change this template, choose Tools | Templates
|
3
3
|
# and open the template in the editor.
|
4
|
-
|
4
|
+
|
5
5
|
|
6
6
|
require 'rubygems'
|
7
7
|
require 'rake'
|
@@ -12,15 +12,15 @@ require 'rake/testtask'
|
|
12
12
|
|
13
13
|
spec = Gem::Specification.new do |s|
|
14
14
|
s.name = 'RoadRunner'
|
15
|
-
s.version = '
|
16
|
-
s.has_rdoc =
|
15
|
+
s.version = '4.0.0'
|
16
|
+
s.has_rdoc = true
|
17
17
|
s.extra_rdoc_files = ['README', 'LICENSE']
|
18
|
-
s.summary = 'RoadRunner
|
18
|
+
s.summary = 'RoadRunner'
|
19
19
|
s.description = s.summary
|
20
|
-
s.author = '
|
20
|
+
s.author = 'Charles Cui'
|
21
21
|
s.email = 'zheng.cuizh@gmail.com'
|
22
|
-
|
23
|
-
s.files = %w(LICENSE README Rakefile) + Dir.glob("{bin,lib,
|
22
|
+
s.executables = ['controller.rb']
|
23
|
+
s.files = %w(LICENSE README Rakefile) + Dir.glob("{bin,lib,conf,controller,log,test}/**/*")
|
24
24
|
s.require_path = "lib"
|
25
25
|
s.bindir = "bin"
|
26
26
|
end
|
@@ -35,12 +35,7 @@ Rake::RDocTask.new do |rdoc|
|
|
35
35
|
files =['README', 'LICENSE', 'lib/**/*.rb']
|
36
36
|
rdoc.rdoc_files.add(files)
|
37
37
|
rdoc.main = "README" # page to start on
|
38
|
-
rdoc.title = "
|
38
|
+
rdoc.title = "dsmp Docs"
|
39
39
|
rdoc.rdoc_dir = 'doc/rdoc' # rdoc output folder
|
40
40
|
rdoc.options << '--line-numbers'
|
41
41
|
end
|
42
|
-
|
43
|
-
Rake::TestTask.new do |t|
|
44
|
-
t.test_files = FileList['test/**/*.rb']
|
45
|
-
end
|
46
|
-
|
data/bin/controller.rb
ADDED
@@ -0,0 +1,74 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require "rubygems"
|
4
|
+
require "logger"
|
5
|
+
require "yaml"
|
6
|
+
require File.join(File.dirname(__FILE__),'..','lib',"monitor")
|
7
|
+
|
8
|
+
USEAGE="Use age: controller.rb -t dd|mysql|svn|test [-f ./servers.yaml]"
|
9
|
+
(p USEAGE;return 1) if ARGV.size < 2
|
10
|
+
|
11
|
+
#-----------------------------Argv prepare.--------------------------------#
|
12
|
+
|
13
|
+
def args(key)
|
14
|
+
ARGV.each_with_index do |arg, i|
|
15
|
+
return ARGV[i+1] if "-#{key}" == arg
|
16
|
+
end
|
17
|
+
nil
|
18
|
+
end
|
19
|
+
|
20
|
+
unless args('t')
|
21
|
+
p USEAGE
|
22
|
+
p "parameter -t must be specified."
|
23
|
+
exit 1
|
24
|
+
end
|
25
|
+
|
26
|
+
#-----------------------------Log file initialize.--------------------------------#
|
27
|
+
|
28
|
+
log_file=File.join(File.dirname(__FILE__),'..','log','stdout.log')
|
29
|
+
FileUtils.rm log_file,:force=>true
|
30
|
+
|
31
|
+
File.open(log_file,"w"){|f|
|
32
|
+
f.puts "*"*60+$/
|
33
|
+
f.puts "DSMP (Distribute Store Manage Performance)".center(60,"*")+$/
|
34
|
+
f.puts "*"*60+$/+$/+$/
|
35
|
+
}
|
36
|
+
|
37
|
+
$log = Logger.new(log_file)
|
38
|
+
$log.level=Logger::INFO
|
39
|
+
|
40
|
+
$log.info "Controller Log Start".center(60,'*')+$/
|
41
|
+
$log.debug "ARGV:#{ARGV.inspect}"
|
42
|
+
|
43
|
+
#-----------------------------Servers Config initialize.--------------------------------#
|
44
|
+
|
45
|
+
conf_file=args('f')||File.join(File.dirname(__FILE__),'..','conf','server.yaml')
|
46
|
+
|
47
|
+
File.open( conf_file ) { |yf|
|
48
|
+
begin
|
49
|
+
$czservers=YAML::load( yf )
|
50
|
+
rescue Exception => e
|
51
|
+
$log.error("YAML Load Error!Plz check your yaml file => #{conf_file}.#{$/}#{e.to_s}")
|
52
|
+
exit 1
|
53
|
+
end
|
54
|
+
}
|
55
|
+
|
56
|
+
#-----------------------------exec your job and monitor work--------------------------------#
|
57
|
+
|
58
|
+
require File.join(File.dirname(__FILE__),'..','controller',"wrap")
|
59
|
+
include RoadRunnerModule
|
60
|
+
|
61
|
+
case args('t')
|
62
|
+
when /dd/ then
|
63
|
+
RRMonitor.monit($czservers,$log,"DD-Performance"){Work.work(3,$log,File.join(File.dirname(__FILE__),'..','controller','dd.sh'))}
|
64
|
+
when /mysql/ then
|
65
|
+
RRMonitor.monit($czservers,$log,"MySQL-Performance"){Work.work(3,$log,File.join(File.dirname(__FILE__),'..','controller','mysql.sh'))}
|
66
|
+
when /svn/ then
|
67
|
+
RRMonitor.monit($czservers,$log,"SVN-Performance"){Work.work(1,$log,File.join(File.dirname(__FILE__),'..','controller','svn.sh'))}
|
68
|
+
when /test/ then
|
69
|
+
RRMonitor.monit([],$log,"Test-Performance"){$log.info "Test Performance Start.....";sleep 60*2;$log.info "Test END."}
|
70
|
+
else
|
71
|
+
p USEAGE
|
72
|
+
exit 1
|
73
|
+
end
|
74
|
+
|
data/bin/host_mgr.rb
ADDED
@@ -0,0 +1,69 @@
|
|
1
|
+
#!/bin/env ruby
|
2
|
+
|
3
|
+
(p "Use age : host_mgr.rb -c restart|shutdown|test [-f ./servers.yaml|-h]";exit 1) if ARGV.include("-h")
|
4
|
+
|
5
|
+
require "rubygems"
|
6
|
+
require "net/ssh"
|
7
|
+
|
8
|
+
class HostMgr
|
9
|
+
def initialize(opt={:server=>"0.0.0.0", :username=>"admin", :password=>"123456"})
|
10
|
+
begin
|
11
|
+
@sess=Net::SSH.start(opt[:server], opt[:username], :password => opt[:password],:timeout => 120)
|
12
|
+
rescue Exception => e
|
13
|
+
p e
|
14
|
+
p opt.inspect
|
15
|
+
raise e
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
def exec!(cmd)
|
20
|
+
p @sess.exec!(cmd)
|
21
|
+
p "#{cmd} --exec over."
|
22
|
+
end
|
23
|
+
|
24
|
+
def exit
|
25
|
+
@sess.exit
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
#-----------------------------Argv prepare.--------------------------------#
|
30
|
+
|
31
|
+
def args(key)
|
32
|
+
ARGV.each_with_index do |arg, i|
|
33
|
+
return ARGV[i+1] if "-#{key}" == arg
|
34
|
+
end
|
35
|
+
nil
|
36
|
+
end
|
37
|
+
|
38
|
+
|
39
|
+
#-----------------------------Servers Config initialize.--------------------------------#
|
40
|
+
|
41
|
+
conf_file=args('f')||File.join(File.dirname(__FILE__),'..','conf','server.yaml')
|
42
|
+
|
43
|
+
File.open( conf_file ) { |yf|
|
44
|
+
begin
|
45
|
+
$czservers=YAML::load( yf )
|
46
|
+
rescue Exception => e
|
47
|
+
$log.error("YAML Load Error!Plz check your yaml file => #{conf_file}.#{$/}#{e.to_s}")
|
48
|
+
exit 1
|
49
|
+
end
|
50
|
+
}
|
51
|
+
|
52
|
+
HOSTS=[]
|
53
|
+
$czservers.each do |h,obj|
|
54
|
+
#HOSTS<<HostMgr.new({:server=>h,:username=>"admin",:password=>"123456"})
|
55
|
+
HOSTS<<HostMgr.new({:server=>h,:username=>obj[:username],:password=>obj[:password]})
|
56
|
+
end
|
57
|
+
|
58
|
+
#p HOSTS.inspect
|
59
|
+
|
60
|
+
case args('c')
|
61
|
+
when /restart/,/reboot/,/re/
|
62
|
+
HOSTS.each{|h|h.exec!("init 6")}
|
63
|
+
when /shutdown/,/halt/,/sd/
|
64
|
+
HOSTS.each{|h|h.exec!("init 0")}
|
65
|
+
when /test/,/t/
|
66
|
+
HOSTS.each{|h|h.exec!("env")}
|
67
|
+
else
|
68
|
+
p "useage: host_mgr.rb cmd"
|
69
|
+
end
|
data/bin/nbd_prepare.sh
ADDED
@@ -0,0 +1,87 @@
|
|
1
|
+
#!/bin/sh
|
2
|
+
#KV.....10.250.3.25-30..6......25.master.....kv-server.
|
3
|
+
|
4
|
+
#.......10.250.6.30
|
5
|
+
#root/goodluck@2010
|
6
|
+
|
7
|
+
#nbd....
|
8
|
+
#/home/admin/nbd
|
9
|
+
|
10
|
+
#...........
|
11
|
+
#/home/cuizheng
|
12
|
+
#/home/cuizheng/mysql
|
13
|
+
#/home/cuizheng/file1
|
14
|
+
#/home/cuizheng/file2
|
15
|
+
|
16
|
+
|
17
|
+
#......
|
18
|
+
cd /home/cuizheng
|
19
|
+
LOG=/home/cuizheng/log/nbd-server.log
|
20
|
+
if [ -e $LOG ]; then
|
21
|
+
rm -f $LOG
|
22
|
+
fi
|
23
|
+
|
24
|
+
touch $LOG
|
25
|
+
|
26
|
+
#........nbd
|
27
|
+
umount ./file1
|
28
|
+
umount ./file2
|
29
|
+
umonut ./mysql
|
30
|
+
|
31
|
+
#..nbd-server..
|
32
|
+
ps axf|grep nbd-server|grep -v grep|awk '{printf "%s\n",$1}'|xargs kill -9
|
33
|
+
|
34
|
+
cd /home/admin/nbd/client/
|
35
|
+
#..nbd-client..
|
36
|
+
./nbd-client -d /dev/nbd0
|
37
|
+
./nbd-client -d /dev/nbd1
|
38
|
+
./nbd-client -d /dev/nbd2
|
39
|
+
|
40
|
+
ps axf|grep nbd-client|grep -v grep|awk '{printf "%s\n",$1}'|xargs kill -9
|
41
|
+
|
42
|
+
cd /home/admin/nbd/server/
|
43
|
+
#.....
|
44
|
+
modprobe nbd
|
45
|
+
nohup ./nbd-server nuwa://10.250.3.25:10240/sys/kvengine/KVMaster >>$LOG 2>&1 &
|
46
|
+
|
47
|
+
cd /home/admin/nbd/client/
|
48
|
+
#.....
|
49
|
+
#sector_size=1024
|
50
|
+
#disk_size=50G
|
51
|
+
#device_id=second since 1970
|
52
|
+
#device=/dev/nbd0-nbd2
|
53
|
+
|
54
|
+
D=`date +"%Y-%m-%d %H:%M:%S"`
|
55
|
+
|
56
|
+
Device_id=`date +"%s"`
|
57
|
+
echo nbd0 device_id => $Device_id
|
58
|
+
./nbd-client 1024 2G $Device_id /dev/nbd0
|
59
|
+
echo MySQL deveice id: >> $LOG
|
60
|
+
echo $Device_id >> $LOG
|
61
|
+
|
62
|
+
sleep 5
|
63
|
+
|
64
|
+
Device_id=`date +"%s"`
|
65
|
+
echo nbd1 device_id => $Device_id
|
66
|
+
./nbd-client 1024 2G `date +"%s"` /dev/nbd1
|
67
|
+
echo File1 deveice id: >> $LOG
|
68
|
+
echo $Device_id >> $LOG
|
69
|
+
|
70
|
+
sleep 5
|
71
|
+
|
72
|
+
Device_id=`date +"%s"`
|
73
|
+
echo nbd2 device_id => $Device_id
|
74
|
+
./nbd-client 1024 2G `date +"%s"` /dev/nbd2
|
75
|
+
echo File2 deveice id: >> $LOG
|
76
|
+
echo $Device_id >> $LOG
|
77
|
+
|
78
|
+
#...
|
79
|
+
mkfs /dev/nbd0
|
80
|
+
mkfs /dev/nbd1
|
81
|
+
mkfs /dev/nbd2
|
82
|
+
|
83
|
+
#....NBD......:
|
84
|
+
mount /dev/nbd0 /home/cuizheng/mysql
|
85
|
+
mount /dev/nbd1 /home/cuizheng/file1
|
86
|
+
mount /dev/nbd2 /home/cuizheng/file2
|
87
|
+
|
data/conf/servers.yaml
ADDED
@@ -0,0 +1,29 @@
|
|
1
|
+
---
|
2
|
+
10.250.3.25:
|
3
|
+
:username: admin
|
4
|
+
:ts: Test-Performance
|
5
|
+
:password: "123456"
|
6
|
+
10.250.3.26:
|
7
|
+
:username: admin
|
8
|
+
:ts: Test-Performance
|
9
|
+
:password: "123456"
|
10
|
+
10.250.6.30:
|
11
|
+
:username: admin
|
12
|
+
:ts: Test-Performance
|
13
|
+
:password: "123456"
|
14
|
+
10.250.3.27:
|
15
|
+
:username: admin
|
16
|
+
:ts: Test-Performance
|
17
|
+
:password: "123456"
|
18
|
+
10.250.3.28:
|
19
|
+
:username: admin
|
20
|
+
:ts: Test-Performance
|
21
|
+
:password: "123456"
|
22
|
+
10.250.3.29:
|
23
|
+
:username: admin
|
24
|
+
:ts: Test-Performance
|
25
|
+
:password: "123456"
|
26
|
+
10.250.3.30:
|
27
|
+
:username: admin
|
28
|
+
:ts: Test-Performance
|
29
|
+
:password: "123456"
|
data/controller/dd.sh
ADDED
@@ -0,0 +1,91 @@
|
|
1
|
+
#!/bin/sh
|
2
|
+
#file-name=nbd_perf_dd.sh
|
3
|
+
|
4
|
+
cd /home/cuizheng
|
5
|
+
#LOG=/home/cuizheng/log/nbd_perf_dd_`date +"%Y-%m-%d=%H:%M:%S"`.log
|
6
|
+
LOG=/home/cuizheng/log/dd.log
|
7
|
+
|
8
|
+
echo "***********DD-Performance***********" >> $LOG
|
9
|
+
|
10
|
+
if [ -e $log ];then
|
11
|
+
rm -f $LOG
|
12
|
+
fi
|
13
|
+
touch $LOG
|
14
|
+
_START=`date +"%s"`
|
15
|
+
|
16
|
+
i=1
|
17
|
+
|
18
|
+
while [ $i -le 3 ];
|
19
|
+
do
|
20
|
+
SUB=`uuidgen`
|
21
|
+
|
22
|
+
cd /home/cuizheng/file1
|
23
|
+
mkdir dd_tmp_$SUB
|
24
|
+
cd dd_tmp_$SUB
|
25
|
+
|
26
|
+
#echo "dd 5mb start" >> $LOG
|
27
|
+
#UUID=`uuidgen`
|
28
|
+
#START=`date +"%s"`
|
29
|
+
#dd if=/dev/zero of=./nbd_perf_test_file_$UUID.dat bs=512k count=10
|
30
|
+
#sync
|
31
|
+
#END=`date +"%s"`
|
32
|
+
#echo "
|
33
|
+
#dd if=/dev/zero of=./nbd_perf_test_file_$UUID.dat bs=512k count=10
|
34
|
+
#sync
|
35
|
+
#START:$START,END:$END,SPEND:$((END-START))
|
36
|
+
#
|
37
|
+
#" >> $LOG
|
38
|
+
|
39
|
+
|
40
|
+
echo "dd 50mb start" >> $LOG
|
41
|
+
UUID=`uuidgen`
|
42
|
+
START=`date +"%s"`
|
43
|
+
dd if=/dev/zero of=./nbd_perf_test_file_$UUID.dat bs=512k count=102
|
44
|
+
sync
|
45
|
+
END=`date +"%s"`
|
46
|
+
echo "
|
47
|
+
dd if=/dev/zero of=./nbd_perf_test_file_$UUID.dat bs=512k count=102
|
48
|
+
sync
|
49
|
+
START:$START,END:$END,SPEND:$((END-START))
|
50
|
+
|
51
|
+
" >> $LOG
|
52
|
+
|
53
|
+
#echo "dd 500mb start" >> $LOG
|
54
|
+
#UUID=`uuidgen`
|
55
|
+
#START=`date +"%s"`
|
56
|
+
#dd if=/dev/zero of=./nbd_perf_test_file_$UUID.dat bs=512k count=1024
|
57
|
+
#sync
|
58
|
+
#END=`date +"%s"`
|
59
|
+
#echo "
|
60
|
+
#dd if=/dev/zero of=./nbd_perf_test_file_$UUID.dat bs=512k count=102
|
61
|
+
#sync
|
62
|
+
#START:$START,END:$END,SPEND:$((END-START))
|
63
|
+
#
|
64
|
+
#" >> $LOG
|
65
|
+
|
66
|
+
|
67
|
+
echo "rm dd document start" >> $LOG
|
68
|
+
cd ..
|
69
|
+
START=`date +"%s"`
|
70
|
+
rm -rf dd_tmp_$SUB
|
71
|
+
sync
|
72
|
+
END=`date +"%s"`
|
73
|
+
echo "
|
74
|
+
rm -rf dd_tmp_$SUB
|
75
|
+
sync
|
76
|
+
START:$START,END:$END,SPEND:$((END-START))
|
77
|
+
|
78
|
+
" >> $LOG
|
79
|
+
|
80
|
+
i=$(($i + 1))
|
81
|
+
done
|
82
|
+
|
83
|
+
_END=`date +"%s"`
|
84
|
+
|
85
|
+
echo DD-Performance Total START:$_START,END:$_END,SPEND:$((_END-_START)) >> $LOG
|
86
|
+
|
87
|
+
exit 1
|
88
|
+
|
89
|
+
#...10..........
|
90
|
+
#nohup sh nbd_perf_dd.sh 1>/home/cuizheng/nbd_perf_dd.log 2>&1
|
91
|
+
|
data/controller/mysql.rb
ADDED
@@ -0,0 +1,73 @@
|
|
1
|
+
#!/ur/bin/env ruby
|
2
|
+
|
3
|
+
require 'rubygems'
|
4
|
+
require 'activerecord'
|
5
|
+
require 'benchmark'
|
6
|
+
require 'logger'
|
7
|
+
require 'pp'
|
8
|
+
|
9
|
+
log_file=File.join(File.dirname(__FILE__),'log','mysql.log')
|
10
|
+
FileUtils.rm log_file,:force=>true
|
11
|
+
|
12
|
+
File.open(log_file,"w"){|f|
|
13
|
+
f.puts "*"*60+$/
|
14
|
+
f.puts "MySQL Store Performance Test".center(60,"*")+$/
|
15
|
+
f.puts "*"*60+$/+$/+$/
|
16
|
+
}
|
17
|
+
|
18
|
+
#$log = Logger.new(File.join(File.dirname(__FILE__),'log','stdout.log'))
|
19
|
+
$log = Logger.new(log_file)
|
20
|
+
$log.level=Logger::ERROR
|
21
|
+
|
22
|
+
begin
|
23
|
+
ActiveRecord::Base.establish_connection(
|
24
|
+
:adapter =>"mysql",
|
25
|
+
:username => "houyi",
|
26
|
+
:password =>"111111",
|
27
|
+
:database => "SNS",
|
28
|
+
:host =>"10.250.6.30"
|
29
|
+
)
|
30
|
+
$log.info "MySQL Connect Success."
|
31
|
+
rescue => e
|
32
|
+
$log.error "MySQL Connect Failed!"
|
33
|
+
$log.error e.to_s
|
34
|
+
end
|
35
|
+
|
36
|
+
# N => count of iterations.
|
37
|
+
N=10000
|
38
|
+
|
39
|
+
class QaPost < ActiveRecord::Base
|
40
|
+
set_table_name "qa_posts"
|
41
|
+
set_primary_key "ID"
|
42
|
+
end
|
43
|
+
|
44
|
+
def insert_records(x=N)
|
45
|
+
qp=QaPost.new
|
46
|
+
QaPost.columns.each do |c|
|
47
|
+
qp.send(c.to_s+"=",rand(x)) unless c=="ID"||c=='id'
|
48
|
+
end
|
49
|
+
ts=Benchmark.measure{qp.save!}
|
50
|
+
`sync`
|
51
|
+
$log.debug qp.inspect
|
52
|
+
$log.info "One Record insert. ts=>#{ts.inspect}"
|
53
|
+
end
|
54
|
+
|
55
|
+
def select_record(id=1)
|
56
|
+
qp=nil
|
57
|
+
ts=Benchmark.measure{qp=QaPost.find_by_id(1)}
|
58
|
+
$log.debug qp.inspect
|
59
|
+
$log.info "One Record Select. ts=>#{ts.inspect}"
|
60
|
+
end
|
61
|
+
|
62
|
+
|
63
|
+
$log.info "#{N} iterations start.".center(60,'*')
|
64
|
+
|
65
|
+
ts = Benchmark.measure{
|
66
|
+
N.times do |x|
|
67
|
+
insert_records(x)
|
68
|
+
select_record
|
69
|
+
end
|
70
|
+
}
|
71
|
+
|
72
|
+
$log.info "#{N} iterations end.".center(60,'*')
|
73
|
+
$log.info "#{N} iterations cost ts=>#{ts.inspect}".center(60,'*')
|