【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',一 ...
随机推荐
- C#的String.Split 分割字符串用法详解的代码
代码期间,把代码过程经常用的内容做个珍藏,下边代码是关于C#的String.Split 分割字符串用法详解的代码,应该对码农们有些用途. 1) public string[] Split(params ...
- (办公)plug-in org.eclipse.jdt.ui was unable to load class org.eclipse.jdt.internal
今天上午开发环境遇到这个问题,解决方案如下,(解决了之后,项目并没有丢失.) 因为Eclipse的这个plug-in org.eclipse.jdt.ui was unable to load cla ...
- 【原】Java学习笔记015 - 面向对象
package cn.temptation; public class Sample01 { public static void main(String[] args) { // 传递 值类型参数 ...
- local_irq_disable和disable_irq的区别
local_irq_disable: local_irq_disable的功能是屏蔽当前CPU上的所有中断,通过操作arm核心中的寄存器来屏蔽到达CPU上的中断,此时中断控制器中所有送往该CPU上的中 ...
- 报错:library not found for -lstdc++.6.0.9
在Xcode 10开发中, 报错:library not found for -lstdc++.6.0.9 解决方案:将Xcode9的libstdc++6.0.9.tbd拷贝到Xcode10中使用 X ...
- 一道C++、MFC上机面试题
题目:写一个基于MFC对话框的程序,界面输入整型a和b,点击计算,开启线程计算a+b,并把结果返回给对话框.(1)不能用结构体和类(2)用到自定义消息(3)鼠标移到[计算]按钮上变为收尸图标.参考界面 ...
- LivePhoto开发,你要知道的知识点
前言 Apple从iPhone6s开始支持Live Photo.Live Photo 会录下拍照前后 1.5 秒所发生的一切,因此用户获得的不仅仅是一张精美照片,还有拍照前后时刻的动作和声音.具体的操 ...
- 【Python实战】使用Python连接Teradata数据库???未完成
1.安装Python 方法详见:[Python 05]Python开发环境搭建 2.安装Teradata客户端ODBC驱动 安装包地址:TTU下载地址 (1)安装TeraGSS和tdicu(ODBC依 ...
- Kafka集成Kerberos之后如何使用生产者消费者命令
1.生产者1.1.准备jaas.conf并添加到环境变量(使用以下方式的其中一种)1.1.1.使用Kinit方式前提是手动kinit 配置内容为: KafkaClient { com.sun.secu ...
- java 常用工具整理
mapUtil map操作工具类 <!-- https://mvnrepository.com/artifact/org.apache.commons/commons-collections4 ...