sysbench测试
基本信息
192.168.1.58与192.168.1.59的内核参数文件内容是一致的
主机 | CPU核心数 | 内存大小 | 内核版本 | |
---|
192.168.1.58 | 4核 | 8G | 2.6.32 |
192.168.1.58 | 4核 | 8G | 2.6.32 |
安装sysbench
官方安装脚本方式
curl -s https://packagecloud.io/install/repositories/akopytov/sysbench/script.rpm.sh | sudo bash
yum安装方式
yum install epel-release && sudo yum -y install sysbench
export LD_LIBRARY_PATH=/usr/local/mysql/lib/
1 CPU基准测试报告
使用以下参数
--num-threads 线程数,默认值为1
--max-requests 最大请求数,默认值为10000
--cpu-max-prime 最大素数,使用该参数后,会使用64-bit int型进行性能测试计算
--percentile 取值百分比值,默认是95 ,即丢弃5%的长请求,在剩余的95%里取最大值
#指定线程数和最大请求数测试CPU
sysbench --num-threads=16 --max-requests=20000 --debug=on --test=cpu --cpu-max-prime=50000 run
主机 | 线程数 | 最大请求数 | 计算最大素数 | 总时间 | 最小响应时间 | 最大响应时间 | 平均响应时间 | 95%的语句的平均响应时间 |
---|
192.168.1.58 | 16 | 20000 | 50000 | 10.0332s | 12.13ms | 48.45ms | 111.34ms | 78.60ms |
192.168.1.59 | 16 | 20000 | 50000 | 10.0567s | 23.74ms | 77.91ms | 125.91ms | 97.55ms |
2 磁盘IO基准测试报告
Sysbench的fileio测试需要经过prepare、run和cleanup三个阶段。prepare是准备阶段,生产需要的测试文件,run是实际测试阶段,cleanup是清理测试产生的文件。
进行4个文件、总大小2GB的fileio测试:
sysbench fileio \
--file-num=4 \
--file-total-size=2G \
prepare
sysbench fileio \
--time=180 \
--events=100000000 \
--threads=1 \
--file-num=4 \
--file-total-size=2G \
--file-io-mode=sync \
--file-test-mode=rndrd \
--file-block-size=16384 \
run
sysbench fileio \
--file-num=16 \
--file-total-size=2G \
cleanup
prepare阶段
主机名 | 准备时间 | 速率 |
---|
192.168.1.58 | 10.24s | 200.02 MiB/s |
192.168.1.59 | 39.61s | 51.70 MiB/s |
测试阶段
主机名 | 测试模式 | 最大随机请求数 | 磁盘IOPS | 磁盘每秒速率 |
---|
192.168.1.58 | rndrd | 100000000 | 257233.75 | 4019.28 |
192.168.1.59 | rndrd | 100000000 | 177808.02 | 2778.25 |
3 OLTP基准测试
查看帮助
sysbench --test=oltp help
主要测试以下参数
--mysql-engine-trx=STRING 指定不同的存储引擎测试。
--oltp-test-mode=STRING 测试类型:simple(简单select测试),complex(事务测试),nontrx(非事务测试),sp(存储过程) ;默认complex
--oltp-sp-name=STRING 指定存储过程进行语句测试
--oltp-table-size=N 指定表的记录大小,默认[10000]
--oltp-num-tables=N 指定测试表的数量,默认[1]
先创建好测试数据库eitest
事务测试,测试12个线程执行1万条请求,10个表,每个表大小100W
准备
sysbench --num-threads=12 --max-requests=100000 \
--test=/usr/share/sysbench/tests/include/oltp_legacy/oltp.lua\
--mysql-user=root --mysql-password=123456 \
--oltp-test-mode=complex --mysql-db=eitest --db-driver=mysql \
--oltp-table-size=1000000 --oltp-num-tables=10 prepare
测试
sysbench --num-threads=12 --max-requests=100000 \
--test=/usr/share/sysbench/tests/include/oltp_legacy/oltp.lua\
--mysql-user=root --mysql-password=123456 \
--oltp-test-mode=complex --mysql-db=eitest --db-driver=mysql \
--oltp-table-size=1000000 --oltp-num-tables=10 run
清理
sysbench --num-threads=12 --max-requests=100000 \
--test=/usr/share/sysbench/tests/include/oltp_legacy/oltp.lua\
--mysql-user=root --mysql-password=123456 \
--oltp-test-mode=complex --mysql-db=eitest --db-driver=mysql \
--oltp-table-size=1000000 --oltp-num-tables=10 cleanup
每秒事务量 TPS
每秒的读写请求数 RQ
主机名 | CPU核心数 | 内存 | 总时间 | TPS | RQ | 95%的请求花费 |
---|
192.168.1.58 | 4核 | 8G | 10.0099s | 850.00 | 16999.98 | 23.95 |
192.168.1.59 | 2核 | 8G | 10.0100s | 775.50 | 15509.93 | 26.20 |