一、sysbench介绍
SysBench是一个模块化的、跨平台、多线程基准测试工具,主要用于评估测试各种不同系统参数下的数据库负载情况。它主要包括以下几种方式的测试:
1、cpu性能
2、磁盘io性能
3、调度程序性能
4、内存分配及传输速度
5、POSIX线程性能
6、数据库性能(OLTP基准测试
目前sysbench主要支持MySQL,pgsql,Oracle等数据库。
最早的官网 http://sysbench.sourceforge.net 已经不可用
项目地址: https://launchpad.net/sysbench 还可以用
最新的地址 https://github.com/akopytov/sysbench
二、sysbench 安装
默认支持mysql 如果需要测试Oracle/PostgreSQL,则在configure时需要加上-with-oracle或者-with-pgsql参数,
1、下载源码,然后自己编译安装
安装库yum install autoconf automake libtool
tar-xzvf sysbench-0.5.tar.gz
cd sysbench
chmod +x autogen.sh
./autogen.sh
./configure --with-mysql --with-mysql-includes=/usr/local/mysql/include --with-mysql-libs=/var/lib64/mysql
make
make install
注意:
--with-mysql-includes=/usr/local/mysql/include --with-mysql-libs=/var/lib64/mysql(32位系统lib64位系统lib64) 这两个目录根据实际系统情况指定。
2、查询sysbench是否正确安装 sysbench -v
三、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
参数解读:
–db-driver #服务器类型mysql | drizzle,默认为mysql
–mysql-table-engine #表存数引擎
–myisam-max-rows #MyISAM表MAX_ROWS选项(用于大表)
–oltp-table-count=10 #生成表数量[sbtest1、sbtest2...]
–oltp-table-size=100000 #生成表的行数
–oltp-secondary #ID列生成二级索引而不是主键
–oltp-auto-inc #设置ID列是否自增on | off,默认为on
–oltp-read-only=on #表示进行只读测试
–rand-init=on #表示每个测试表都是用随机数据来填充的
–report-interval=1 #每1秒打印一次当前的QPS等值
–num-threads=8 #表示发起 8个并发连接
–max-time=120 #表示最大执行时长为 120秒
–percentile=99 #表示设定采样比例,默认是 95%,即丢弃1%的长请求,在剩余的99%里取最大值
初步测试,首先创建表
sysbench --mysql-host=localhost --mysql-port=3306 --mysql-user=root --mysql-password=222222 --mysql-db=test --oltp-tables-count=10 --oltp-table-size=600000 --num-threads=50 --max-requests=100000000 --max-time=20 --report-interval=1 --rand-init=on --test=/usr/local/src/sysbench/sysbench/tests/db/oltp.lua prepare
开始测试:
sysbench --mysql-host=localhost --mysql-port=3306 --mysql-user=root --mysql-password=222222 --mysql-db=test --oltp-tables-count=10 --oltp-table-size=600000 --num-threads=50 --max-requests=100000000 --max-time=20 --report-interval=1 --rand-init=on --test=/usr/local/src/sysbench/sysbench/tests/db/oltp.lua run
清除测试数据:
sysbench --mysql-host=localhost --mysql-port=3306 --mysql-user=root --mysql-password=222222 --mysql-db=test --oltp-tables-count=10 --oltp-table-size=600000 --num-threads=50 --max-requests=100000000 --max-time=20 --report-interval=1 --rand-init=on --test=/usr/local/src/sysbench/sysbench/tests/db/oltp.lua cleanup
参考:https://www.percona.com/docs/wiki/benchmark:sysbench:olpt.lua
本文出自 “59090939” 博客,请务必保留此出处http://59090939.blog.51cto.com/6338052/1736194
原文地址:http://59090939.blog.51cto.com/6338052/1736194