【mysql】mysql基准测试
基准测试定义
基准测试其实是一种测量和评估软件性能指标的方法,用于建立某个时间点的性能基准,以便当系统的软硬件发生变化的时候重新进行基准测试以评估变化对性能的影响。所以对系统性能的测量,才能知道我们的优化是否达到了预期的效果,这样对系统的性能测试叫做基准测试,也是针对系统设置的一种压力测试,观察系统在不同压力下的表现,评估系统的容量。不过基准测试和压力测试还是有点区别的。
基准测试要尽量的直接,简单,各个测试后结果要容易比较,基准测试所用的数据的都是测试工具所生成的,只能用于评估服务器的处理能力。而压力测试通常是针对真实的业务数据进行测试,获得系统真实所能承受的压力。所用基准测试是一种简化的压力测试,并且基准测试不关心具体的业务逻辑,所进行的测试是和真实的业务并没有关系。
基准测试的目的
1.建立mysql服务器的性能基准线,确定当前mysql服务器运行情况。可以从历史记录去比较来诊断应用中出现的问题。
2.模拟比当前系统更高的负载,以找出系统扩展的瓶颈。通过增加数据库的并发,来观察QPS,TPS的变化,确定并发量和性能之间的最优关系。
3.可以测试不同的硬件(比如ssd固态硬盘和传统机械硬盘中随机写性能哪个更快),软件(升级mysql版本是否能改善mysql的性能,以及不同的存储引擎的性能),操作系统(linux不同文件系统,磁盘分区对数据库是否有影响)的配置。
4.验证新的硬件设备上线前是否配置正确达到预期的结果,同时了解新设备的性能基准线。
如何基准测试
1.对整个系统进行测试。
优点:能够测试整个系统的性能,包括web服务器,缓存,程序,mysql数据库等。能反映出系统中各个接口之间的性能问题。
缺点:测试设计复杂,花费的时间较长。
2. 单独对组件的测试,比如mysql。只更新了mysql硬件,或者更新了mysql的索引,所以这时候仅需要对mysql测试就行。
优点:测试简单,所耗费时间比较短。可以针对某个具体问题去测试。
缺点:无法全面了解真个系统的性能基准线。
mysql基准测试的常见指标
1.单位时间内所执行完的事务数(TPS)。
2.单位时间内所处理完的查询数(QPS)。注意是已经处理完的。
TPS和QPS用于衡量数据库的吞吐量。
3.响应时间,衡量一个测试任务完成的整体花费的时间。可以分为平均响应时间,最小响应时间,最大响应时间,个时间所占的百分比。
4.并发量。同时处理的查询请求的数量,(注意:并发量不等于连接数),是正在工作中的并发操作数或同时工作的线程或进程的数量。
  
mysql基准测试工具mysqlslap,sysbench
常见的基准测试工具有Mysqlslap,Sysbench,Jmeter。
Mysqlslap是一个MySQL官方提供的压力测试工具,是自带的。可以通过模拟多个并发客户端访问MySQL来执行压力测试。但是如果测试硬件,比如CPU,线程,磁盘,以及内存的性能,这些Mysqlslap都测试不了。
下面可以使用mysqlslap --help来显示提供的使用方法:
[root@localhost ~]# mysqlslap --help
mysqlslap Ver 1.0 Distrib 8.0.-dmr, for Linux (x86_64)
Copyright (c) , , Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners. Run a query multiple times against the server. Usage: mysqlslap [OPTIONS] Default options are read from the following files in the given order:
/etc/mysql/my.cnf /etc/my.cnf ~/.my.cnf
The following groups are read: mysqlslap client
The following options may be given as the first argument:
--print-defaults Print the program argument list and exit.
--no-defaults Don't read default options from any option file,
except for login file.
--defaults-file=# Only read default options from the given file #.
--defaults-extra-file=# Read this file after the global files are read.
--defaults-group-suffix=#
Also read groups with concat(group, suffix)
--login-path=# Read this path from the login file.
-?, --help Display this help and exit.
-a, --auto-generate-sql
Generate SQL where not supplied by file or command line.
--auto-generate-sql-add-autoincrement
【mysql】mysql基准测试的更多相关文章
- MySQL服务器基准测试
		
一.基准测试简介 1.什么是基准测试 数据库的基准测试是对数据库的性能指标进行定量的.可复现的.可对比的测试. 基准测试与压力测试 基准测试可以理解为针对系统的一种压力测试.但基准测试不关心业务逻辑, ...
 - ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
		
有时候,当我们使用"mysql"."mysqladmin"."mysqldump"等命令管理数据库时,服务器抛出类似如下错误: 一.错误现场 ...
 - ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
		
从供应商手中接手一个云平台(Windwos Azure)上的MySQL数据库,登录数据库时遇到错误: $mysql -uroot -p Enter password: ERROR 2002 (HY00 ...
 - mac ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib /mysql/mysql.sock' (111)
		
之前装了mysql,今天打开mysql的时候报了个Can't connect to local MySQL server through socket '/var/lib /mysql/mysql.s ...
 - 更换mysql数据目录后出现ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) 的解决办法
		
服务器上的mysql默认数据目录为/var/lib/mysql/,同时服务器的/空间不是很大,而近期又有大量的日志需要导入进行分析,时常搞得/的空间捉襟见肘,晚上一狠心就想把mysql的数据目录转移到 ...
 - 启动mysql错误ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ (2)
		
ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ ( ...
 - ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)--MySQL错误
		
MySQL错误整理: 错误一: ERROR (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/my ...
 - Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’解决方法  + Linux启动/停止/重启Mysql数据库的方法
		
启动mysql 报错: ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/lib/mysql/m ...
 - Can 't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock '(2) ;
		
Can 't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock '(2) ; 如果你在网上search这个 ...
 - 解决: Can’t connect to local MySQL server through socket /var/lib/mysql/mysql.sock
		
今天在搬瓦工上使用mysql 命令行,总报一个这样的错:Can't connect to local MySQL server through socket '/xxxxx/mysql.sock',一 ...
 
随机推荐
- 自定义xUtils框架
			
xUtils是基于Afinal开发的目前功能比较完善的一个Android开源框架,最近又发布了xUtil3.0,在增加新功能的同时又提高了框架的性能.它的功能很强大,但是有时候我们只需要其中的一些功能 ...
 - 在AndroidStudio上使用AddressSanitizer
			
在AndroidStudio上使用AddressSanitizer AddressSanitizer是Google主导的一个开源内存问题检测工具.现在也开始支持Android平台,且受Google推荐 ...
 - VMware+centos7克隆多个虚拟机
			
最近在学习Hadoop,需要搭建分布式集群,自己在电脑上安装的VMware+centos7.前期我已经安装好了一个虚拟机,并把apache,jdk等的环境都配置好了,现在需要搭建集群了,所以需要克隆三 ...
 - cmd实现批量文件的base64加密并双击加密文件后正常运行
			
之前,一个朋友让我用cmd做个简单的文档加密(base64),对于不太懂电脑的人来说看不懂就行.但是当那个人点击加密后的文件可以正常运行,问咋写? 其实,像这种要求不高的加密来说,随便下载个加密软件就 ...
 - input(type='file')上传多张照片并显示,传到后台
			
以下内容为网络摘抄和实践修改所得,如有雷同,请谅解!!!! 1.首先是前端页面代码: 其中,<input type="file" id="file_input&qu ...
 - June. 23rd 2018, Week 25th. Saturday
			
We are who we choose to be. 要成为怎样的人,选择在于自己. From Barry Manilow. I believe that we are who we choose ...
 - 在Visual Studio 2017上配置Glut
			
在Visual Studio 2017上配置Glut 作者:凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/ 在Visual Studio 2017上配置并使用 ...
 - gradlew和gradle的区别
			
概念理解 gradlew就是对gradle的包装和配置,gradlew是gradle Wrapper,Wrapper的意思就是包装. 因为不是每个人的电脑中都安装了gradle,也不一定安装的版本是要 ...
 - Loj #2494. 「AHOI / HNOI2018」寻宝游戏
			
Loj #2494. 「AHOI / HNOI2018」寻宝游戏 题目描述 某大学每年都会有一次 Mystery Hunt 的活动,玩家需要根据设置的线索解谜,找到宝藏的位置,前一年获胜的队伍可以获得 ...
 - spring boot拦截器中获取request post请求中的参数(转)
			
文章转自 https://www.jianshu.com/p/69c6fba08c92