mysql数据库rp集群_MySQL 数据库集群-PXC 方案(三)

MySQL 数据库集群-PXC 方案(三)

什么是基准测试

基准测试是针对系统的一种压力测试,但基准测试不关心业务逻辑,更加简单、直接、易于测试,不要求数据的真实性和逻辑关系。

基准测试的指标

ea65b97261a62bbd549fbd7f89d7e38d.png

Sysbench 简介

3d37c4752107f58b5d5f3245cb2948a8.png

Sysbench 是一个模块化的、跨平台、多线程基准测试工具,主要用于测试系统及数据库的性能。它主要包括以下几种方式的测试:CPU 性能(系统级别)

磁盘 IO 性能(系统级别)

调度程序性能(系统级别)

内存分配及传输速度(系统级别)

POSIX 线程性能(系统级别)

数据库性能(OLTP 基准测试)

目前 Sysbench 主要支持 MySQL,pgsql,oracle 这 3 种数据库。

安装 Sysbenchcurl -s https://packagecloud.io/install/repositories/akopytov/sysbench/script.rpm.sh | sudo bash

yum -y install sysbench

安装完成后查看是否安装成功sysbench --version

27dd55164fd440a0736d8e1ce43f6d31.png

Sysbench 基本语法sysbench script [option] [command]

option 连接信息参数参数名称功能意义--mysql-hostIP 地址

--mysql-port端口号

--mysql-user用户名

--mysql-password密码

option 执行参数参数名称功能意义--oltp-test-mode执行模式(simple、nontrx、complex)

--oltp-tables-count测试表的数量

--oltp-table-size测试表的记录数

--threads并发连接数

--time测试执行时间(秒)

--report-interval生成报告单的间隔时间(秒)

执行模式:simple: 测试查询 不测试写入

nontrx:测试无事务的增删改查

complex:测试有事务的增删改查

command 命令命令名称功能意义prepare准备测试数据

run执行测试

cleanup清除测试数据

准备测试数据

在准备之前我们先修改一下haproxy.cfg文件,之前我们配置的是 MyCat 集群的负载均衡,现在改为某一个分片的 PXC 集群即可。vim /etc/haproxy/haproxy.cfgserver mysql_1 192.168.3.137:3306 check port 3306 weight 1 maxconn 2000

server mysql_1 192.168.3.138:3306 check port 3306 weight 1 maxconn 2000

server mysql_1 192.168.3.139:3306 check port 3306 weight 1 maxconn 2000

保存之后执行命令重启service haproxy restart

可以看到下图没有问题:

f2532fbe9c233ad44307adf940fa6d11.png

之后我们新建一个测试逻辑库sbtest

0e3357e29826bdbeb7ada01b300d3e18.png

接着我们创建测试数据sysbench /usr/share/sysbench/tests/include/oltp_legacy/oltp.lua --mysql-host=192.168.3.146 --mysql-port=3306 --mysql-user=admin --mysql-password=Abc_123456 --oltp-tables-count=10 --oltp-table-size=100000 prepare/usr/share/sysbench/tests/include/oltp_legacy/oltp.lua : 生成测试数据的脚本 sysbench 自带

--mysql-host :数据库连接地址

--mysql-port : 端口

--mysql-user:用户名

--mysql-password:密码

--oltp-tables-count:测试 10 个数据表

--oltp-table-size:每张表 10 万条数据

prepare:准备测试数据

创建完成后我们执行测试sysbench /usr/share/sysbench/tests/include/oltp_legacy/oltp.lua --mysql-host=192.168.3.146 --mysql-port=3306 --mysql-user=admin --mysql-password=Abc_123456 --oltp-test-mode=complex --threads=10 --time=300 --report-interval=10 run >> /home/mysysbench.log--oltp-test-mode=complex:测试有事务的增删改查

--threads:并发连接数

--time:测试时长,测试的时长更长一些,比如 24 小时,测试的结果会更加准确

--report-interval=10 :每隔 10 秒回报一次数据

run >> /home/mysysbench.log:输入测试日志报告文件位置

等待 5 分钟执行完成后,我们查看 /home/mysysbench.log。

a51284fbf1ce74b207c9b007ab451998.pngqueries performed : 执行测试的次数

read : 读操作执行了 442176 次

write : 写操作执行了 117484 次

other:其他操作执行了 66275 次

total:总共执行了 625935 次

transcations(TPS):执行的事务次数 28415 次,PXC 集群每秒可以执行的事务操作 94.67 次

queries(QPS):处理的请求书 625935,PXC 集群每秒钟可以执行 2085.35 次增删改查操作

ignored errors: 忽略的错误数量 3169,每秒钟平均错误数量 10.56 次,可能是节点之间冲突造成

reconnects:数据库重新连接的次数,0 代表没有发生数据库连接断开的情况

清理测试数据:sysbench /usr/share/sysbench/tests/include/oltp_legacy/oltp.lua --mysql-host=192.168.3.146 --mysql-port=3306 --mysql-user=admin --mysql-password=Abc_123456 --oltp-tables-count=10 cleanup

小结

基准测试是对单张表进行的读写测试,因为不涉及表连接外键约束,索引等操作,所以单纯体现的是数据库硬件性能。如果想知道数据库集群在真实业务中的实际性能,需要使用压力测试。

tpcc-mysql 简介

tpcc-mysql 是 percona 基于 tpcc 规范衍生出来的产品,专门用于 mysql 压力测试 。

tpcc 是一种测试标准,明确规定了数据模型和检测是指标,而且检测的标准对数据库集群来说很苛刻,tpcc-mysql 的测试库能覆盖大多数的业务场景,测试的结果也能反映出真实业务中数据库的实际性能。

tpcc 测试问题

tpcc 的检测标准是针对单节点的 mysql 数据库,对 sql 的执行时间有严格的规定,我们要测试的 PXC 集群是以牺牲插入速度为代价换取的同步强一致性,假如 tpcc 要执行一个 insert 语句不能超过 100ms,但是 PXC 集群只是写入速度慢,插入执行了 300ms。这个检测点就没有通过,所以拿 tpcc 测试 PXC 集群不太适合,检测的标准太苛刻了一些,但是因为数据库集群在真实业务下实际的读写性能,每秒钟能执行多少次读操作,多少次写操作。至于由于插入速度慢测试报告中测试没有通过,可以不予理会。

测试方案

我们还是以 haproxy+三个 mysql 节点的

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值