mysql性能测试--sysbench实践

Sysbench

 
  • 业界较为出名的性能测试工具
  • 可以测试磁盘,CPU,数据库
  • 支持多种数据库:oracle,DB2,MYSQL
  • 需要自己下载编译安装
  • 建议版本:sysbench0.5
 
sysbench,不仅用来测试数据库的性能,也可以测试运行数据库的服务器的性能。
 
强烈建议熟悉sysbench测试,在mysql用户的工具包中,这应该是最有用的工具之一。
 
  • sysbench 的cpu基准测试
  • sysbench 的文件I/O基准测试
  • sysbench 的OLTP基准测试
 
sysbench 其他的基准测试,但和数据库性能没有直接关系。
  • 内存-----测试内存的连续读写性能
  • 线程-----测试线程调度器的性能。
  • 互斥锁---测试互斥锁性能。
  • 顺序写---测试顺序写的性能。
 
问题:
  • 表结构单一
  • 没有相关约束和索引
  • 测试的SQL语句相对简单
 
 
使用方法

 
1.下载sysbench
 
mysql性能测试--sysbench实践
git clone https://github.com/akopytov/sysbench

目录结构
root@itcast01:/home/aiapple/sysbench# ls
autogen.sh configure.ac install-sh missing README-WIN.txt
ChangeLog COPYING m4 mkinstalldirs sysbench
config doc Makefile.am README.md TODO
mysql性能测试--sysbench实践
 
2. 编译&安装
 
./autogen.sh
./configure --prefix=/home/sysbench
make
make install
 
 
3. sysbench流程
  • 初始化数据(prepare)
  • 运行测试(run)
  • 清理数据(cleanup)
 
a)初始化数据prepare:
 
sysbench --test=parallel_prepare.lua --oltp_tables_count=1 --rand-init=on --oltp-table-size=500000000 --mysql-host=127.0.0.1 --mysql-port=3306 --mysql-user=sys --mysql-password=netease --mysql-db=sbtest --max-requests=0 prepare
mysql性能测试--sysbench实践
 mysql性能测试--sysbench实践
 
sysbench表结构
mysql性能测试--sysbench实践
mysql性能测试--sysbench实践
b)运行测试--run
 
sysbench --test=oltp.lua --oltp_tables_count=1 --num-threads=100 --oltp-table-size=500000000 --oltp-read-only=off --report-interval=10 --rand-type=uniform --mysql-host=127.0.0.1 --mysql-port=3306 --mysql-user=sys --mysql-password=netease --mysql-db=sbtest --max-time=1000 --max-requests=0 run
mysql性能测试--sysbench实践
mysql性能测试--sysbench实践
特殊情况
  • 写入测试(纯insert情况)
 
数据解读
运行数据
mysql性能测试--sysbench实践
mysql性能测试--sysbench实践
[10s]--------------运行时间点
Threads:100------100个线程数
tps:378.90---------每秒执行378.9个事务
reads:-------------读请求数
writes:------------写请求数
response time:--响应时间
errors:-------------错误个数
reconnects:-------重新连接个数
 
数据汇总
关注
  • 响应时间
  • tps
mysql性能测试--sysbench实践
mysql性能测试--sysbench实践
c)清理数据(cleanup)
  • 手动drop表和database
  • 使用sysbench提供的cleanup命令
 
使用sysbench清理数据
sysbench --test=parallel_prepare.lua --oltp_tables_count=1 --rand-init=on --oltp-table-size=500000000 --mysql-host=127.0.0.1 --mysql-port=3306 --mysql-user=sys --mysql-password=netease --mysql-db=sbtest --max-requests=0 cleanup
 
上一篇:mysql性能测试-tpcc


下一篇:effective c++ 思维导图