一、实验环境介绍
- 系统 :CentOS 5.5
- JDK : java-1.6.0-openjdk.x86_64,java-1.6.0-openjdk-devel-1.6.0.41-1.13.13.1.el5_11
- Mysql :mysql-5.0.95-5.el5_9、mysql-server-5.0.95-5.el5_9
- PHP :php-cli-5.1.6-45.el5_11、php-5.1.6-45.el5_11、php-pdo-5.1.6-45.el5_11、
php-common-5.1.6-45.el5_11、php-mysql-5.1.6-45.el5_11、
php-ldap-5.1.6-45.el5_11 - Apache :httpd-2.2.3-92.el5.centos
- Sysstat :sysstat-7.0.2-13.el5
- Gnuplot:gnuplot-4.0.0-14.el5
- RUBiS : RUBiS-1.4.3.tgz https://git.oschina.net/LjxOS/RUBiS
- 部署apache服务器B ip:192.168.0.2
部署mysql数据库 A ip:192.168.0.1
部署client客户端 C ip:192.168.0.3 - RUBiS位置:/home/RUBiS
二、部署过程
CentOS的yum源的服务器一般在国外,下载速度极慢,需要进行安装镜像源地址进行更改https://my.oschina.net/LinJunXin/blog/792522
- mysql数据库-服务器 A
a. 安装mysql数据库
yum install mysql-server-5.0.95-5.el5_9 -y
yum install mysql.i386 0:5.0.95-5.el5_9 -y
b. 安装监控软件sysstat
yum install sysstat -y
c. 配置mysql用户远程访问权限
#查看mysql状态
service mysqld status
#启动mysql服务
service mysqld start
#第一次安装mysql需要设置密码
#PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
#To do so, start the server, then issue the following commands:
#/usr/bin/mysqladmin -u root password 'new-password'
/usr/bin/mysqladmin -u root password 'new-password'
mysql -u root -p
创建新用户rubis,并使其可以远程或者本地连接mysql服务器:
命令:CREATE USER 'username'@'host' IDENTIFIED BY 'your_password';
>> CREATE USER 'rubis'@'%' IDENTIFIED BY 'your_password';
>> CREATE USER 'rubis'@'localhost' IDENTIFIED BY 'your_password';
>> GRANT ALL PRIVILEGES ON *.* TO 'rubis'@'%';
>> GRANT ALL PRIVILEGES ON *.* TO 'rubis'@'localhost';
d. 初始化rubis数据库
cd /home/RUBiS/database
mysql -urubis -pYour_password < rubis.sql
mysql -urubis -pYour_password rubis < regions.sql
mysql -urubis -pYour_password rubis < categories.sql
2. apache服务器 B
a. 安装apache、php、sysstat模块
#安装 apache
yum install httpd-2.2.3-92.el5.centos -y
#安装 php、php-mysql
yum install php-5.1.6-45.el5_11 -y
yum install php-mysql-5.1.6-45.el5_11 -y
#安装 sysstat
yum install sysstat -y
b. 通过建立连接的方式,将RUBiS的PHP代码放置在apache服务器里
ln -s /home/RUBiS/PHP /var/www/html/PHP
c.修改PHP目录中 .php 文件里已废弃的命令,主要是:$HTTP_POST_VARS 改为 $_POST,$HTTP_GET_VARS 改为 $_GET
cd /home/RUBiS/PHP/
grep -ci "HTTP_POST_VARS" *.php
grep -ci "HTTP_GET_VARS" *.php
sed -i "s/HTTP_POST_VARS/_POST/g" *.php
sed -i "s/HTTP_GET_VARS/_GET/g" *.php
d. 配置数据库参数,打开/home/RUBiS/PHP/PHPPrinter.php文件,修改getDatabaseLink函数:
将mysql_pconnect()里面的三个参数依次填为apache服务器ip、mysql用户名及其密码
e.开启apache服务,检查是否配置成功,关闭或设置防火墙(一般情况下,centos 防火墙只开启端口22)
service httpd start
chkconfig httpd on
#关闭防火墙,不然80端口不可访问
service iptables stop
chkconfig iptables off
#apache 访问权限问题
setenforce 0
浏览器:http://192.168.0.2/PHP/index.html若出现下图,则服务配置成功:
3.Client服务器 C
client主要负责 发起模拟请求,监控各节点数据,生成测试报告;以及初始化数据库
a. 安装监控以及绘图软件
yum install sysstat
yum install gnuplot
b.修改配置文件, /home/RUBiS/Client/rubis.properties
# HTTP server information
httpd_hostname = 192.168.0.2 #修改1:改为PHP服务器B的IP
httpd_port = 80
+# C-JDBC server information
cjdbc_hostname = 192.168.0.1 #修改1:改为数据库服务器A的IP
# Precise which version to use. Valid options are : PHP, Servlets, EJB
httpd_use_version = PHP #修改2:改为PHP版本
ejb_server = sci20
ejb_html_path = /ejb_rubis_web
ejb_script_path = /ejb_rubis_web/servlet
servlets_server = sci21
servlets_html_path = /Servlet_HTML
servlets_script_path = /servlet
php_html_path = /PHP
php_script_path = /PHP
# Workload: precise which transition table to use
workload_remote_client_nodes =
workload_remote_client_command = /usr/local/java/jdk1.3.1/bin/java -classpath /home/RUBiS/ edu.rice.rubis.client.ClientEmulator
#修改3:修改jdk路径
#修改4:修改RUBiS 模拟器路径
workload_number_of_clients_per_node = 240
workload_transition_table = /home/RUBiS/workload/transitions.txt #修改5:修改对应路径
workload_number_of_columns = 27
workload_number_of_rows = 29
workload_maximum_number_of_transitions = 1000
workload_number_of_items_per_page = 20
workload_use_tpcw_think_time = yes
workload_up_ramp_time_in_ms = 120000
workload_up_ramp_slowdown_factor = 2
workload_session_run_time_in_ms = 900000
workload_down_ramp_time_in_ms = 60000
workload_down_ramp_slowdown_factor = 3
#Database information
database_server = 192.168.0.1 #修改6:改为数据库服务器A的IP
# Users policy
database_number_of_users = 10000
# Region & Category definition files
database_regions_file = /home/RUBiS/database/ebay_regions.txt #修改7:修改对应路径
database_categories_file = /home/RUBiS/database/ebay_simple_categories.txt #修改8:修改对应路径
# Items policy
database_number_of_old_items = 10000
database_percentage_of_unique_items = 80
database_percentage_of_items_with_reserve_price = 40
database_percentage_of_buy_now_items = 10
database_max_quantity_for_multiple_items = 10
database_item_description_length = 1024 #修改9:改为小一点,1024
# Bids policy
database_max_bids_per_item = 20
# Comments policy
database_max_comments_per_user = 20
database_comment_max_length = 2048
# Monitoring Information
monitoring_debug_level = 0
monitoring_program = /usr/bin/sar
monitoring_options = -n DEV -n SOCK -rubcw
monitoring_sampling_in_seconds = 1
monitoring_rsh = /usr/bin/ssh
monitoring_scp = /usr/bin/scp
monitoring_gnuplot_terminal = jpeg
c.修改配置文件,/home/RUBiS/config.mk
##############################
# Environment variables #
##############################
JAVA_HOME=/usr/local/java/jdk1.3.1 #修改1:设置JAVA_HOME
JAVA = $(JAVA_HOME)/bin/java
JAVAC = $(JAVA_HOME)/bin/javac
#JAVAC = /usr/bin/jikes
JAVACOPTS =
# +E -deprecation
JAVACC = $(JAVAC) $(JAVACOPTS)
RMIC = $(JAVA_HOME)/bin/rmic
RMIREGISTRY= $(JAVA_HOME)/bin/rmiregistry
CLASSPATH = .:/usr/local/java/jdk1.3.1/jre/lib/rt.jar:$(PWD)#修改2:改为java路径
JAVADOC = $(JAVA_HOME)/bin/javadoc
JAR = $(JAVA_HOME)/bin/jar
GENIC = ${JONAS_ROOT}/bin/unix/GenIC
MAKE = gmake
CP = /bin/cp
RM = /bin/rm
MKDIR = /bin/mkdir
# EJB server: supported values are jonas or jboss
EJB_SERVER = jonas
# DB server: supported values are MySQL or PostgreSQL
DB_SERVER = MySQL
%.class: %.java
${JAVACC} -classpath ${CLASSPATH} $<
d.编译客户端
#到该步骤,应该可以编译成功
cd /home/RUBiS
make client
e. 初始化数据库
cd /home/RUBiS
make initDB PARAM='all'
需要注意的几点:
1) make initDB后边的PARAM一共有5种选择:all,生成所有数据;users,只生成用户;items,只生成物品;bids,生成竞拍;comments,生成注释。
2) 如果前面讲到的PHP代码中需要修改的地方已经更正了的话,数据是可以写入到数据库中的。
3) 在配置rubis.properties的时候,如果database_item_description_length的数值太大的话。会出现Unable to Open URL http://....的错误。文件默认给的值就太大,建议修改为1024即可。
初始化正常运行如下图:
初始化后,网站会正常 显示出 商品信息
f.启动模拟器,生成的报告会出现在/home/RUBiS/bench/目录下,需要做下免密登录
cd /home/RUBiS
make emulator