背景
最近着迷于性能测试,遂学习一把压测神器sysbench
站在用户的角度思考问题,与客户深入沟通,找到河北网站设计与河北网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:成都网站制作、做网站、外贸营销网站建设、企业官网、英文网站、手机端网站、网站推广、主机域名、虚拟主机、企业邮箱。业务覆盖河北地区。sysbench是github上开源的项目
链接地址:https://github.com/akopytov/sysbench
通用安装方法
1.clone and download选择copy URL
2.cd /tmp --> Centos终端输入git clone https://github.com/akopytov/sysbench.git
3.按照README.MD中源码安装指导一步步操作即可。
yum -y install make automake libtool pkgconfig libaio-devel
yum -y install mariadb-devel
./autogen.sh
./configure
make -j
make install
sysbench测试I/O
关键词:随机产生数据,测试不同磁盘,在不同磁盘目录下执行命令
准备阶段:sysbench --test=fileio --num-threads=4 --file-total-size=10G --file-test-mode=rndrw prepare
压力测试阶段:sysbench --test=fileio --num-threads=4 --file-total-size=10G --file-test-mode=rndrw run
清理数据阶段:sysbench --test=fileio --num-threads=4 --file-total-size=10G --file-test-mode=rndrw cleanup
基础名称解析==压测要关注什么
TPS:Transactions Per Second,每秒传输的事务处理个数。这是指服务器每秒处理的事务数,是支持事务的存储引擎特有的一个性能指标。
QPS:Queries Per Second,每秒查询处理量,适用大多数存储引擎。
tpmC:Transactions Per Minute,每分钟处理的交易量,等同于TPS,是TPC-C的测试指标(tpcc-mysql)。
iops:每秒磁盘进行的I/O操作次数
iowait:一个采样周期内有百分之几的时间处于:CPU空闲、并且有仍未完成的I/O请求
svctm:设备处理请求的平均时间(ms)。指的是读写请求脱离linux内核调度,进入设备读写阶段所耗时间。
%util:可以简单的理解为:单位时间内,设备繁忙比。比如,10秒钟,有6秒在进行读写,则util = 60%。
每秒I/O字节数(I/O吞吐)
事务响应时间
I/O设备提供的设备级别IOPS、读写延时数据
一般要关注的指标
response time avg:平均响应时间
TPS and OPS
系统层面的cpu、io、mem相关指标
如何判定哪个测试模式性能更好
如果两次tps/tpmC一样,那么谁的事务响应时间、iowait、svctm、%util、读写延时更低,就是谁更好
mysql压测举例
sysbench /tmp/sysbench/src/lua/oltp_read_write.lua \
--mysql-host=127.0.0.1 --mysql-port=3306 \
--mysql-user=sysbench --mysql-password=sysbench \
--mysql-db=sbtest --tables=10 --table-size=100000 --threads=1 \
--report-interval=10 --rand-type=uniform --max-time=300 \
--max-requests=0 --percentile=99 prepare/run/cleanup
结果指定到文件:
run >>./log/sysbench_oltpX_20180313.log
参数解释:
./src/lua/oltp_read_write.lua 表示调用本脚本进行oltp模式测试
--mysql-db=sbtest 表示指定测试库
--tables=10 表示生成10个测试表
--table-size=100000 表示每个测试表填充数据量为100000
run模式的参数:
--threads=1 表示发起1个并发连接
--report-interval=10 表示每10秒输出一次测试进度报告
--rand-type=uniform 表示随机类型为固定模式
--max-time=300 表示大执行时长300秒
--max-requests=0 表示总请求数为 0,因为上面已经定义了总执行时长,所以总请求数可以设定为 0;也可以只设定总请求数,不设定大执行时长
--percentile=99 表示设定采样比例,默认是 95%;即丢弃1%的长请求,在剩余的99%里取大值
压测三部曲
prepare:准备阶段,准备数据
run:压测执行
cleanup:压测后马上清理数据
每次压测后要做什么
每轮测试完成后,都重启mysqld实例,并且用下面的方法删除系统cache,释放swap(如果用到了swap的话),甚至可以重启整个OS
shell> sync --将脏数据刷新到磁盘
shell> echo 3 > /proc/sys/vm/drop_caches --清楚OS Cache
shell> swapoff -a && swapon -a
出图
安装windows客户端,用于出图
软件:gp507-win64-mingw
下载url:https://jaist.dl.sourceforge.net/project/gnuplot/gnuplot/5.0.7/gp507-win64-mingw.exe
举例:
plot 'C:\Users\limin\Downloads\20180314.log' using 7 with linespoint title 'vm1-TPS',
'C:\Users\limin\Downloads\20180314-10.log' using 7 with linespoint title 'vm2-TPS'
另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
当前标题:sysbench安装、使用、出图-创新互联
网站链接:http://lswzjz.com/article/ghjjg.html