登录
首页 >  数据库 >  MySQL

sysbench基准测试

来源:SegmentFault

时间:2023-01-22 10:03:41 451浏览 收藏

在IT行业这个发展更新速度很快的行业,只有不停止的学习,才不会被行业所淘汰。如果你是数据库学习者,那么本文《sysbench基准测试》就很适合你!本篇内容主要包括sysbench基准测试,希望对大家的知识积累有所帮助,助力实战开发!

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

文中关于mysql的知识介绍,希望对你的学习有所帮助!若是受益匪浅,那就动动鼠标收藏这篇《sysbench基准测试》文章吧,也可关注golang学习网公众号了解相关技术文章。

声明:本文转载于:SegmentFault 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>