MSQL的基准测试
Mysql基准测试
基准测试
直接、简单、易于比较,用于评估服务器的处理能力
压力测试
对真实的月数据进行测试,获得真是系统所能承受的压力
基准测试的目的
1、建立MySQL服务器的性能基准线
2、模拟比当前系统更高的负载,以找出系统的扩展瓶颈
3、测试不同的硬件、软件和操作系统配置
4、证明新硬件设备是否配置正确
如何进行基准测试
1、对整个系统进行基准测试
优点:能够测试正而过系统的性能,包括web服务器、缓存、数据库等,能反映出系统中各个组件接口间的性能问题体现真实性能状况
缺点:测试设计复杂,耗费的时间过长
2、单独MySQL进行基准测试
优点:测试设计简单,所耗时的时间更短
缺点:无法全面了解整个系统的性能基准线
MySQL基准测试的常见指标
1、单位时间内所处理的事务数(TPS)
2、单位时间内所处理的查询数(QPS)
3、相应时间
平均相应时间,最小相应时间,最大相应时间。各个时间所占百分比
4、并发量:同事处理的查询请求的数量
基准测试的步骤
计划和设计基准测试
1、对整个系统还是某一组件
2、使用什么样的数据(最好是备份的数据,或者某个时间段内的数据)
3、准备基准测试及数据库收集脚本
4、运行基准测试脚本
5、保存及分析基准测试结果
基准测试中容易忽略的问题
1、使用生产环境数据时只使用了部分的测试数据(推荐使用完全的备份数据进行测试)
2、在度用户的场景中,只做了单个用户的测试
3、在单服务器上测试分布式应用(使用相同的架构进行测试)
4、反复执行同一查询(容易缓存命中,无法反应真实的查询性能)
基准测试的工具介绍
MySQL基准测试工具之 mysqlslap
下载及安装:
MySQL服务器自带的基准测试工具,随MySQL一起安装
特点:
1、可以模拟服务器负载,并输出相关统计信息
2、可以指定也可以自动生成查询语句
常见参数说明:
--auto-generate-sql 由系统自动生成SQL脚本进行测试
--auto-generate-sql-add-autoincrement 再生成表中增加自增ID
--auto-generate-sql-load-type 指定测试中使用的查询类型
--auto-genrate-sql-write-number 指定初始化数据时生成的数据量
--concurrency 指定并发线程的数量
--engine 指定测试表的存储引擎,可以使用逗号分隔多个存储引擎
--no-drop 指定不清理测试数据
--iterations 指定测试运行的测试
--numbers-of-queries 指定每一个线程执行的查询数量
--debug-info 指定输出额外的内存及cpu统计信息
--number-int-cols 指定测试表中包含的INTl类型的数量
--number-char-cols 指定测试表中包含的varchar类型的数量
--create-schema 指定了用于执行测试的数据库的名字
--query 用于指定自定义的SQL的脚本
--noly-print 并不运行测试脚本,而是把生成的脚本打印出来
举例测试命令:
]# mysqlslap --concurrency=1,50,100,200 --iterations=3 --number-int-cols=5 --number-char-cols=5 --auto-generate-sql --auto-generate-sql-add-autoincrement --engine=myisam,innodb --number-of-queries=10 --create-schema=test -p
说明:
测试的过程需要生成测试表,插入测试数据,这个mysqlslap可以自动生成,默认生成一个mysqlslap的schema,如果已经存在则先删除。可以用--only-print来打印实际的测试过程,整个测试完成后不会在数据库中留下痕迹。
mysqlslap执行测试截图

MySQL基准测试工作之 sysbench
安装说明:
github地址:https://github.com/akopytov/sysbench/
1、源码包
]# yum install automake libtool -y
]# cd /usr/local && wget https://github.com/akopytov/sysbench/archive/master.zip
]# unzip master.zip
]# cd sysbench-master/
]# ./autogen.sh
]# ./configure --with-mysql-includes=/usr/local/mysql/include/ --with-mysql-libs=/usr/local/mysql/lib
]# make -j 2 && make install
2、yum安装
]# curl -s https://packagecloud.io/install/repositories/akopytov/sysbench/script.rpm.sh | sudo bash
]# sudo yum -y install sysbench
常用参数说明:
用于指定索要执行的测试类型,支持以下参数
Fileio 文件系统I/O性能测试
cpu cpu性能测试
memory 内存性能测试
OLTP 测试要指定具体的lua脚本
--mysql-db 用于指定执行基准测试数据库的名称
--mysql-table-engine 用于所使用过的存储引擎
--num-threads 指定测试的并发线程的数量
--max-time 指定最大的测试时间
--report-interval 指定间隔时间输出一次统计信息
--mysql-password 指定执行测试的MySQL用户名的密码
测试CPU性能
~]# sysbench --test=cpu --cpu-max-prime=20000 run
--cpu-max-prime=N 最大质数发生器数量。默认是10000

线程测试
]# sysbench --test=threads --num-threads=64 --thread-yields=100 --thread-locks=2 run
--num-threads=64 开启的线程数量
--thread-yields=100 每个线程请求的数量
--thread-locks=2 每个线程的锁数量为2

测试磁盘IO性能
首先需要创建测试所使用的文件
]# sysbench --test=fileio --num-threads=16 --file-total-size=3 --file-test-mode=rndrw prepare
其次进行磁盘IO测试
]# sysbench --test=fileio --num-threads=16 --file-total-size=3 --file-test-mode=rndrw run
最后测试完成后,用以下命令清除测试时 创建的测试文件
]# sysbench --test=fileio --num-threads=16 --file-total-size=3 --file-test-mode=rndrw cleanup

测试内存性能
~]# sysbench --test=memory --memory-block-size=8k --memory-total-size=4G run
--memory-block-size 测试内存的块大小,默认为1K
--memory-total-size 测试需要传送数据的大小

原创作品,转载请注明出处:http://www.cnblogs.com/demon89/p/8494523.html
MSQL的基准测试的更多相关文章
- 一篇文章看懂TPCx-BB(大数据基准测试工具)源码
TPCx-BB是大数据基准测试工具,它通过模拟零售商的30个应用场景,执行30个查询来衡量基于Hadoop的大数据系统的包括硬件和软件的性能.其中一些场景还用到了机器学习算法(聚类.线性回归等).为了 ...
- JavaScript的基准测试-不服跑个分?
原文:Bulletproof JavaScript benchmarks 做JavaScript的基准测试并没有想的那么简单.即使不考虑浏览器差异所带来的影响,也有很多难点-或者说陷阱需要面对. 这是 ...
- mysql benchmark基准测试
git项目地址: https://github.com/akopytov/sysbench 利用sysbench很容易对mysql做性能基准测试(当然这个工具很强大,除了测试主流数据库性能,还能测试其 ...
- 掌握 Linux PC 性能之基准测试
导读 基准测试是一项测试或一系列测试,用来确定某个计算机硬件运行起来的状况有多好:在许多情况下,“基准测试”实际上等同于“压力测试”,通过测试硬件的极限,然后可以将测得的结果与其他硬件测得的结果作一番 ...
- mysql基准测试
1. 及注册时有两种主要的策略:①正对整个系统的整体测试(集成式full-stack) ②单独测试mysql(但组件式基准测试single-component) 2.获取系统性能和状态(需要记录的数据 ...
- [译]使用JMH进行微基准测试:不要猜,要测试!
英文原文:Micro Benchmarking with JMH: Measure, don't guess!翻译地址:使用JMH进行微基准测试:不要猜,要测试!原文作者:Antonio翻译作者:Ho ...
- Java监控工具介绍,VisualVm ,JProfiler,Perfino,Yourkit,Perf4J,JProbe,Java微基准测试
本文是本人前一段时间做一个简单Java监控工具调研总结,主要包括VisualVm ,JProfiler,Perfino,Yourkit,Perf4J,JProbe,以及对Java微基准测试的简单介绍, ...
- Hadoop 基准测试与example
#pi值示例 hadoop jar /app/cdh23502/share/hadoop/mapreduce2/hadoop-mapreduce-examples--cdh5. #生成数据 第一个参数 ...
- js 性能基准测试工具-告别可能、也许、大概这样更快更省
平时写js经常遇到这样做是不是更快点?但又没有具体简单可测试的工具,最近也倒序看博客园司徒正美 js分类下的文章 [ps:去年灵光一闪,发现看博客园排名前100的博客.按照文章分类倒序看是学习最快的方 ...
随机推荐
- css 块状元素与行内元素(内联元素)的理解
块状元素: 它一般是其他元素的容器元素,可以容纳块状元素和行内元素,它默认是不会和其他元素同一行的,即相当于两个块状元素写一起是垂直布局的.最常用的是div和p 行内元素: 行内元素又称内联元素,它只 ...
- PPT基础教程
在当前演示文稿中增加新的幻灯片:快捷键>>ctrl+M 或者将鼠标定位到左侧窗格,然后按下回车键enter 母版??? 默认版式是"标题和文本" 右键 > ...
- Part 3:视图和模板--Django从入门到精通系列教程
该系列教程系个人原创,并完整发布在个人官网刘江的博客和教程 所有转载本文者,需在顶部显著位置注明原作者及www.liujiangblog.com官网地址. Python及Django学习QQ群:453 ...
- Notepad++ 运行java(转)
Notepad++ 运行java java, 2013/05/04, 9 replies, 6,007 views 文章目录 Notepad++ for java 安装必须的程序 配置NppExec ...
- linux的8小时差问题解决
下面是同步时间的解决方法: 1.vi /etc/sysconfig/clock #编辑文件 ZONE="Asia/Shanghai" UTC=false #设置为false,硬件时 ...
- 针对Chrome谷歌等浏览器不再支持showModalDialog的解决方案
最近在维护一个老项目,之前都是用IE来调试代码的.今天想着测试一下项目的兼容性,就用了谷歌浏览器,然后就遇到这样一个问题:一段用showModalDialog实现弹出模态框和返回值的js代码,在调试时 ...
- Optaplanner - 入门介绍
OptaPlanner背景 在上一篇里喷了不少水,这一篇准备放点干货:其实也没办法完全干,因为很多预备知道在交待一下.好了,说一下关于OptaPlanner的背景.应用兼容性及其原理. 这一篇先说一下 ...
- AOP 切面编程------JoinPoint ---- log日志
AOP 在软件业,AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术.AOP是OOP的延续,是软件 ...
- ABP官方文档翻译 6.1.1 MVC控制器
ASP.NET MVC控制器 介绍 AbpController基类 本地化 其他 过滤器 异常处理和结果包装 审计日志 验证 授权 工作单元 介绍 ABP通过Abp.Web.Mvc nuget包集成到 ...
- 2.Ray-消息发布器与消息存储器
消息发布器: Ray是基于Event Sourcing设计的ES/Actor框架,ESGrain状态(State)的修改.ESGrain之间的通信默认使用RabbitMQ通信.消息的发布器主要是Rab ...