上一篇学习了sysbench的用途,并且使用sysbench对测试虚机的CPU、线程、互斥锁、内存、磁盘IO进行了测试,虽然囫囵吞枣般的进行了测试,还是有些收获,本篇开始对Mariadb进行测试。
sysbench使用1补充
1)Fileio 测试脚本
以下来自lpfuture写的sysbench 压力测试工具(http://www.cnblogs.com/lpfuture/p/5740840.html)
引用开始
如果需要测试seqwr(顺序写), seqrewr(顺序读写), seqrd(顺序读), rndrd(随机读), rndwr(随机写), rndrw(随机读写)等6种模式,并且还可能需要测试不同的线程和不同的文件块下磁盘的性能表现,这时,可以使用如下脚本达到测试目的。
测试脚本内容如下:
#!/bin/bash
#==============================================================================
#
# FILE: sysbench_auto.sh
#
# USAGE: ./sysbench_auto.sh
#
# DESCRIPTION: This file is sysbench_auto.sh
# AUTHOR: Kevin Lu (kevin), kevin@gmail.com
# ORGANIZATION: cmcc
# CREATED: 02/26/2014 17:35
# REVISION: v1.0.1
#==============================================================================
for size in {
8G,64G}
do
for mode in {seqwr,seqrewr,seqrd,rndrd,rndwr,rndrw}
do
for blksize in {
4096,16384}
do
sysbench --test=fileio --file-num=64 --file-total-size=$size prepare
for threads in {
1,4,8,16,32}
do
echo "=============testing $blksize in $threads threads"
echo PARAS $size $mode $threads $blksize > sysbench-size-$size-mode-$mode-threads-$threads-blksz-$blksize
for i in {
1,2,3}
do
sysbench --test=fileio --file-total-size=$size --file-test-mode=$mode --max-time=180 --max-requests=100000 --num-threads=$threads --
init-rng=on --file-num=64 --file-extra-flags=direct --file-fsync-freq=0 --file-block-size=$blksize run|tee -a sysbench-size-$size-mo
de-$mode-threads-$threads-blksz-$blksize 2>&1
done
done
sysbench --test=fileio --file-total-size=$size cleanup
done
done
done
脚本运行后,在当前目录下会生成如下文件:
引用结束。
0.测试环境
宿主机
- OS:Win 10 Enterprise LTSB
- CPU:Intel i5-4200U @ 1.6GHz 2.30GHz
- 内存:12G
- 硬盘:SSD+WD Black
虚机
- OS:CentOS 7.2
- CPU:2v
- 内存:2G
- io调度模式:deadline(数据库适合)
- 磁盘文件格式:xfs (数据库适合)
- sysbench:1.0.9
- mariadb 10.2.7
1.理论准备
数据库测试和磁盘IO测试一样,也要经过prepare、run和cleanup三个阶段。区别在于一个对象是数据库,一个对象是文件。
1.0.X版本,sysbench舍弃了–test参数,0.5版本如果希望测试数据库信息,需要使用–test=oltp参数,在1.0版本后不再使用oltp,转为使用oltp*.lua脚本。lua脚本存放目录通过本节附录查找。
sysbench命令格式:
sysbench [options]… [testname] [command]
举例
sysbench oltp_read_write.lua –mysql-host=127.0.0.1 –mysql-port=3306 –mysql-db=test –mysql-user=root –mysql-password=root –table_size=5000000 –tables=10 –threads=300 –time=60 –report-interval=10
参数说明,更详细说明见上一篇 MySQL/Mariadb基准测试工具-sysbench使用1
|:——————— |:—————————–|
|–mysql-host| IP|
|–mysql-port| 端口号|
|–mysql-db| 希望链接的数据库|
|–mysql-user| 用户名|
|–mysql-password| 密码|
|–table_size| 每张表初始化的数据数量|
|–tables |初始化表的数量|
|–threads| 启动的线程|
|–time| 运行时间|
|–report-interval| 运行期间日志,单位为秒|
prepare用于准备测试需要的数据,准备完后执行run来测试,测试完成后不要忘记执行cleanup来清除测试数据。
附:
查找
存放lua脚本目录方法。
[root@localhost /]# rpm -qa | grep sysbench #查找安装包
sysbench-1.0.9-