mysql cluster7.4.8安装和性能测试

测试环境

5台虚拟机centos6.5,4G内存

192.168.17.177     Management node (mgmd)
192.168.17.178     SQL node (mysqld)
192.168.17.179     SQL node (mysqld)
192.168.17.180     Data node(ndbd)
192.168.17.176     Data node(ndbd)

1台管理节点,2台sql节点,2台存储节点

Management node为管理节点,负责把数据保存到Data node节点;SQL node为mysql服务器节点,php、java可以mysql驱动连接该节点,访问mysql cluster数据,与普通mysql服务器不同,该节点只保存表结构不保存具体数据,表数据保存在Data node。

这里为了方便关闭了防火墙

service iptables stop 
chkconfig iptables off

删除centos6.5自带mysql

rpm -qa | grep mysql
rpm -e --nodeps mysql-libs-5.1.71-1.el6.x86_64

http://dev.mysql.com/downloads/cluster/ 下载安装文件MySQL-Cluster-gpl-7.4.8-1.el6.x86_64.rpm-bundle.tar,上传到5台服务器各自解压,包含文件

MySQL-Cluster-client-gpl-7.4.8-1.el6.x86_64.rpm
MySQL-Cluster-devel-gpl-7.4.8-1.el6.x86_64.rpm
MySQL-Cluster-embedded-gpl-7.4.8-1.el6.x86_64.rpm
MySQL-Cluster-server-gpl-7.4.8-1.el6.x86_64.rpm
MySQL-Cluster-shared-compat-gpl-7.4.8-1.el6.x86_64.rpm
MySQL-Cluster-shared-gpl-7.4.8-1.el6.x86_64.rpm
MySQL-Cluster-test-gpl-7.4.8-1.el6.x86_64.rpm

这里只用到MySQL-Cluster-server-gpl-7.4.8-1.el6.x86_64.rpm和MySQL-Cluster-client-gpl-7.4.8-1.el6.x86_64.rpm

1、安装

1)Data node安装

192.168.17.176、192.168.17.180两台服务器都需要执行下步安装

rpm -ivh MySQL-Cluster-server-gpl-7.4.8-1.el6.x86_64.rpm

该节点主要使用ndbd或ndbmtd(在/usr/sbin目录)命令运行MySQL Cluster data node服务。

2)SQL nodes安装

192.168.17.178、192.168.17.179两台服务器都需要执行下步安装

rpm -ivh MySQL-Cluster-server-gpl-7.4.8-1.el6.x86_64.rpm

安装带NDB引擎的mysqld服务(在/usr/sbin目录),mysql的启动命令mysql.server和mysqld_safe(在/usr/share/mysql或/usr/bin目录)

这两台服务器需要提供mysql服务,需要安装

rpm -ivh MySQL-Cluster-client-gpl-7.4.8-1.el6.x86_64.rpm

3)Management nodes

rpm -ivh MySQL-Cluster-server-gpl-7.4.8-1.el6.x86_64.rpm

安装ndb_mgmd服务管理(/usr/sbin目录)和ndb_mgm(NDB管理客户端)

2、配置

1)data nodes 和 SQL nodes配置

vim /etc/my.cnf

输入内容:

[mysqld]
ndbcluster                      #NBD引擎
[mysql_cluster]
ndb-connectstring=192.168.17.177 #管理节点


2)management node配置

命令行输入:

mkdir /var/lib/mysql-cluster
cd /var/lib/mysql-cluster
vim config.ini

config.ini内容为:

[ndbd default]
# Options affecting ndbd processes on all data nodes:
NoOfReplicas=2    # Number of replicas
DataMemory=80M    # How much memory to allocate for data storage
IndexMemory=18M   # How much memory to allocate for index storage
                  # For DataMemory and IndexMemory, we have used the
                  # default values. Since the "world" database takes up
                  # only about 500KB, this should be more than enough for
                  # this example Cluster setup.

[tcp default]
# TCP/IP options:
portnumber=2202   # This the default; however, you can use any
                  # port that is free for all the hosts in the cluster
                  # Note: It is recommended that you do not specify the port
                  # number at all and simply allow the default value to be used
                  # instead

[ndb_mgmd]
# Management process options:
hostname=192.168.17.177         # Hostname or IP address of MGM node
datadir=/var/lib/mysql-cluster  # Directory for MGM node log files

[ndbd]
# Options for data node         # (one [ndbd] section per data node)
hostname=192.168.17.176         # Hostname or IP address
datadir=/usr/local/mysql/data   # Directory for this data node's data files

[ndbd]
# Options for data node
hostname=192.168.17.180         # Hostname or IP address
datadir=/usr/local/mysql/data   # Directory for this data node's data files

[mysqld]
# SQL node options:
hostname=192.168.17.178         # Hostname or IP address
                                # (additional mysqld connections can be
[mysqld]
# SQL node options:
hostname=192.168.17.179         # specified for this node for various
                                # purposes such as running ndb_restore)


3、启动

mysql cluster各节点启动顺序为:Management nodes -> data node -> SQL node;

1)启动管理节点Management nodes(192.168.17.177)

ndb_mgmd -f /var/lib/mysql-cluster/config.ini  #如果第一次启动或配置文件修改过需要的尾后加上--initial

2)启动存储节点data node(192.168.17.180,192.168.17.176)

ndbd   #如果第一次启动尾后加上--initial


3)启动SQL node (192.168.17.178, 192.168.17.179),让php,java等通过这边两台服务器访问mysql cluster

mysqld_safe &

php,java等需要连接这两台服务器访问数据库,执行下边命令修改默认密码和数据库初始化。

more /root/.mysql_secret  #获取默认密码
/usr/bin/mysql_secure_installation  #修改root密码和其它默认配置

4、关闭

mysql cluster关闭顺序与启动相反SQL node -> data node ->Management nodes

1)SQL node节点(192.168.17.178, 192.168.17.179),在各自服务器上执行命令

service mysql stop


2)由于关闭Management nodes时会自动关闭data node,只需在Management nodes(192.168.17.177)执行命令

ndb_mgm -e shutdown


5、测试比较

在另一台相同配置的虚拟机192.168.1.181上安装独立版本的mysql 5.6.28,下边是测试比较结果。截图上边为mysql cluster测试结果,下图为mysql结果,测试工具为jmeter2.13

jmeter JDBC连接配置

170344_1XGc_117179.png

线程数从1000开始,线程组配置如下

170359_vIRz_117179.jpg

线程数为1000时插入测试

170409_z7oT_117179.gif

线程数为5000时插入测试

170421_QKxf_117179.gif

线程数为10000时插入测试

170430_D8Qx_117179.gif

线程数为15000时插入测试

170447_vda9_117179.gif

线程数为1000时查询测试

170458_DxEf_117179.gif

线程数为5000时查询测试

170509_Nms3_117179.gif

线程数为10000时查询测试

170523_GUGE_117179.gif

线程数为15000时查询测试

170533_7IaF_117179.gif

jmeter聚合报告字段说明

Label:每个 JMeter 的 element(例如 HTTP Request)都有一个 Name 属性,这里显示的就是 Name 属性的值

#Samples:表示你这次测试中一共发出了多少个请求,如果模拟10个用户,每个用户迭代10次,那么这里显示100

Average:平均响应时间——默认情况下是单个 Request 的平均响应时间,当使用了 Transaction Controller 时,也可以以Transaction 为单位显示平均响应时间

Median:中位数,也就是 50% 用户的响应时间

90% Line:90% 用户的响应时间

Note:关于 50% 和 90% 并发用户数的含义,请参考下文

Min:最小响应时间

Max:最大响应时间

Error%:本次测试中出现错误的请求的数量/请求的总数

Throughput:吞吐量——默认情况下表示每秒完成的请求数(Request per Second),当使用了 Transaction Controller 时,也可以表示类似 LoadRunner 的 Transaction per Second 数

KB/Sec:每秒从服务器端接收到的数据量,相当于LoadRunner中的Throughput/Sec

参考文档

http://dev.mysql.com/doc/refman/5.6/en/mysql-cluster-install-linux-rpm.html


转载于:https://my.oschina.net/penngo/blog/595364

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值