sysbench
性能压测以及
mysql
性能压测
一、Sysbench
是一个模块化的、跨平台、多线程基准测试工具,主要用于各种不同系统的参数下的数据库负载情况。
主要测试方式 | |||||
cpu性能 | 磁盘io性能 | 调度程序性能 | 内存分配及传输速度 | posix线程性能 | 数据库性能(OLTP基准测试) |
找范围内最大素数{时间越短越好} | 不同场景下iops{越大越好} | 线程并发执行,循环响应信号量花费的时间{越少越好} | 以不同块大小传输一定的数量的数据吞吐量大小{越大越好} | 并发线程同时申请互斥锁循环一定次数花费的时间{越少越好} | qps、tps越高越好 |
1 | 1 |
目前sysbench
主要支持
MYSQL,pgsql,oracle
这
3
种数据库
二、
安装测试环境:centos6.8 mysql5.7.19
三、
安装sysbench-0.5
源码地址https://github.com/BoobooWei/sysbench/archive/master.zip
下载到电脑桌面,然后xshell
连接服务器,下载上传软件工具
#cd /usr/local/src/
#yum install lrzsz -y
#rz #
选中下载的软件进行上传
#unzip sysbench-master.zip
#cd sysbench-master
#yum install -y automake libtool -y
#./autogen.sh
报错:autom4te: /usr/bin/m4 failed with exit status: 63
aclocal: autom4te failed with exit status: 63
显示版本太低了
#
查看版本信息 :
yum info autoconf
#
查看路径:
which autoconf
#
移除低版本的:
rpm -qf /usr/bin/autoconf rpm -e –nodeps autoconf-2.63
#cd /usr/local/src
#
下载新版本软件:
wget http://ftp.gnu.org/gnu/autoconf/autoconf-2.69.tar.gz
#tar -xzf autoconf-2.69.tar.gz
#cd autoconf-2.69
#./configure
#make && make install
#
检查版本是否正确
autoconf -V #
显示路径还是错的
#
如果报错重新安装如果没有跳过
make uninstall make clean
#./configure –prefix=/usr
#make && make install
#autoconf -V
显示正常
#cd /usr/local/src/sysbench-master
#./autogen.sh
显示正常
#./configure
报错:cannot find MySQL libraries. If you want to compile with MySQL support,
缺少
mysql
依赖
# yum install mysql-devel -y
#./configure
显示正常
#make && make install
四、
安装mysql5.7.19
#wget https://dev.mysql.com/get/mysql57-community-release-el6-9.noarch.rpm
#rpm -Uvh mysql57-community-release-el6-9.noarch.rpm
#yum install mysql-community-server
#service mysqld start
#grep 'temporary password' /var/log/mysqld.log
#mysql -uroot -p
#
输入过滤出来的密码
#set global validate_password_policy=0; #
设置密码复杂度
#set global validate_password_length=6; #
设置密码长度
#ALTER USER 'root'@'localhost' IDENTIFIED BY 'abc123'; #
更改密码
#create database sbtest;
#quit
五、测试
Mysql
数据库测试
sysbench 0.5
通过一系列
LUA
脚本来替换之前的
oltp
,来模拟更接近真实的基准测试环境。这些测试脚本包含:
insert.lua
、
oltp.lua
、
parallel_prepare.lua
、
select_random_points.lua
、
update_index.lua
、
delete.luaoltp_simple.lua
、
select.lua
、
select_random_ranges.lua
、
update_non_index.lua
,脚本使用方式基本类似。
sysbench 0.5
默认使用
sbtest
库,但是需要自己手工先创建好,也可以使用
–mysql-db
指定,其他非默认项指定选项:
–mysql-host
–mysql-port
–mysql-socket
–mysql-user
–mysql-password
–mysql-db
–mysql-ssl
prepare
生成表并插入数据,可使用parallel_prepare.lua
脚本来并行准备数据。
–
db-driver
服务器类型
mysql | drizzle,
默认为
mysql
–
mysql-table-engine
表存数引擎
–
myisam-max-rows MyISAM
表
MAX_ROWS
选项
(
用于大表
)
–
-oltp-table-count
生成表数量
[sbtest1
、
sbtest2…]
–
oltp-table-size
生成表的行数
–
oltp-secondary ID
列生成二级索引而不是主键
–
-oltp-auto-inc
设置
ID
列是否自增
on | off
,默认为
on –oltp-read-only=on
–test=sysbench-0.5/sysbench/tests
目录下测试脚本
sysbench \
–test=/root/sysbench-master/sysbench/tests/db/oltp.lua \
–mysql-host=localhost \
–mysql-port=3306 \
–mysql-user=root \
–mysql-password=abc123 \
–oltp-table-size=100000 \
–num-threads=8 \
–max-time=10 \
–mysql-db=sbtest \
–max-requests=0 \
–oltp-test-mode=complex \
–report-interval=1 \
–mysql-table-engine=innodb \
[prepare|run|cleanup]
准备
/
测试