mysql基础测试
- 模拟比当前系统更高的负载,找出性能瓶颈
- 重现线上异常
- 测试不同硬件软件配置
- 规划未来的业务增长
- 设备层的测试
- 业务层的测试
- 数据库层的测试
- 关注哪些指标
- 服务器,磁盘性能
- 磁盘坏块率
- 服务器寿命
- 针对业务进行测试
- 什么情况下要做Mysql的测试
- 测试不同的Mysql分之版本
- 测试不同的mysql版本
- 测试不同的mysql参数搭配
- CPU Bound --全内存的测试,测试的数据远小于配置的内存;这样就可以不用因为磁盘IO的性能不同,而影响测试结果。
- IO Bound-- 测试的数据量远大于内存,这就有大量的数据从磁盘IO读取写入;
- 写入测试
- 更新测试
- 纯度测试
- 混合模式(根据业务不同)
- 开源的mysql性能测试工具
- sysbench
- tpcc-mysql
- mysqlslap
- 针对业务编写性能测试工具
- blogbench--根据网易博客,的具体业务来做的测试工具
- 服务吞吐量
- TPS--每秒执行事务的总量
- QPS--每秒执行的请求总量
- 服务响应时间
- 服务并发性---正在工作中的并发操作,或者是同时工作中的线程数或者连接数。例如一个web站点"同时有50000个用户"访问,却可能只有10--15个并发请求到mysql数据库,此时并发数只有10--15。
- 可扩展性---------------简单来说,给系统增加一倍的资源(比如两倍的CPU数),就可以获得两倍的吞吐量。当然,同时性能(响应时间)也必须在可以接受的范围内。大多数系统是无法做到如此理想的线性扩展的。
- 使用真实数据的子集而不是全集。
- 与真实用户行为不匹配。
- 没有检查错误。-----------测试中遇到不是预期结果,就应该检查错误日志,这时基本要求。
- 忽略了系统预热的过程----系统重启后,缓存是没有数据的,这时测试与实际情况不符,实际很可能是 缓存中已经有很多数据。
- 测试时间太短
- 记录测试数据
- 系统配置的步骤
- 如何测试的步骤
- 分析结果
- 预热的方案
- cpu使用率
- 磁盘I/O
- 网络流量统计
- show global status 计数器等
- 业界较为出名的性能测试工具
- 可以测试磁盘,CPU,数据库
- 支持多种数据库:oracle,DB2,MYSQL
- 需要自己下载编译安装
- 建议版本:sysbench0.5
- sysbench 的cpu基准测试
- sysbench 的文件I/O基准测试
- sysbench 的OLTP基准测试
- 内存-----测试内存的连续读写性能
- 线程-----测试线程调度器的性能。
- 互斥锁---测试互斥锁性能。
- 顺序写---测试顺序写的性能。
- TPC-C是专门针对联机交易处理系统(OLTP系统)的规范
- Tpcc-mysql由percona根据规范实现

mysql> set @input := 'hello world';
Query OK, 0 rows affected (0.00 sec) mysql> select benchmark(1000000,MD5(@input));
+--------------------------------+
| benchmark(1000000,MD5(@input)) |
+--------------------------------+
| 0 |
+--------------------------------+
1 row in set (1.45 sec) mysql> select benchmark(1000000,SHA1(@input));
+---------------------------------+
| benchmark(1000000,SHA1(@input)) |
+---------------------------------+
| 0 |
+---------------------------------+
1 row in set (1.40 sec)

- 四小类:写入测试,更新测试,纯度测试,混合模式
- 性能测试衡量指标:
- 服务吞吐量
- TPS--每秒执行事务的总量
- QPS--每秒执行请求的总量
- 服务响应时间
- 服务并发性
- 设计测试常见错误:
- 使用数据子集而不是全集,
- 与真实用户行为不匹配,
- 没有检查错误,
- 忽略了系统预热过程,测试时间太短;
- 测试方法
- 测试规划:
- 记录测试数据,
- 系统配置步骤,
- 测试步骤,
- 分析结果,
- 预热方案;
- 测试时间:测试应该运行足够长的时间,至少等于系统预热的时间。
- 获取系统性能和状态:cpu,IO,网络流量,mysql状态计数器;
- 运行测试:自动化测试包含:数据装载,系统预热,执行测试,记录结果。
- 绘图分析:直观的发现问题;
- 测试工具:sysbench,tpcc-mysql,benchmark()
- 测试小结:
- IO Bound测试数据量要远大于内存,cpu Bound测试数据量要小于内存
- 测试时间建议大于60分钟,减小误差;有系统预热时间;
- Sysbench更倾向于测试Mysql性能,Tpcc更接近于业务
mysql基础测试的更多相关文章
- MYSQL基础操作
MYSQL基础操作 [TOC] 1.基本定义 1.1.关系型数据库系统 关系型数据库系统是建立在关系模型上的数据库系统 什么是关系模型呢? 1.数据结构可以规定,同类数据结构一致,就是一个二维的表格 ...
- MySQL基础学习总结
1.MySQL基础概念 mysql逻辑架构如下: 每个客户端连接都会在服务器中拥有一个线程,这个连接的查询只会在这个单独的线程中执行. MySQL是分层的架构.上层是服务器层的服务和查询执行引擎,下层 ...
- MYSQL 基础操作
1.MySQL基础操作 一:MySQL基础操作 1:MySQL表复制 复制表结构 + 复制表数据 create table t3 like t1; --创建一个和t1一样的表,用like(表结构也一样 ...
- myBatis 基础测试 表关联关系配置 集合 测试
myBatis 基础测试 表关联关系配置 集合 测试 测试myelipse项目源码 sql 下载 http://download.csdn.net/detail/liangrui1988/599388 ...
- 服务管理之mysql基础
目录 mysql基础 1. 关系型数据库介绍 1.1 数据结构模型 1.2 RDBMS专业名词 2. mysql安装与配置 2.1 mysql安装 2.2 mysql配置 3. mysql的程序组成 ...
- { MySQL基础数据类型}一 介绍 二 数值类型 三 日期类型 四 字符串类型 五 枚举类型与集合类型
MySQL基础数据类型 阅读目录 一 介绍 二 数值类型 三 日期类型 四 字符串类型 五 枚举类型与集合类型 一 介绍 存储引擎决定了表的类型,而表内存放的数据也要有不同的类型,每种数据类型都有自己 ...
- (3.2)mysql基础深入——mysql源码阅读工具安装与应用
(3.2)mysql基础深入——mysql源码阅读工具安装与应用 关键字:mysql源码阅读工具 工具列举:一般多用[1][2][3]吧 [1]source insight [2]写字板/记事本 UE ...
- (3.1)mysql基础深入——mysql二进制与源码目录结构介绍
(3.1)mysql基础深入——mysql二进制与源码目录结构介绍 关键字:二进制目录结构,源码目录结构(编译安装目录结构) 1.二进制安装程序目录结构 [1] BIN -- mysql的可执行文件( ...
- Linux系统——MySQL基础(一)
# 数据库 ## 数据库简单的分类:(1)关系型数据库:MySQL和Oracle.Postgresql(2)非关系型数据库:Memcached和Redis(3)消息队列中间件(4)搜索引擎数据库:El ...
随机推荐
- POJ 3181 Dollar Dayz 01全然背包问题
01全然背包问题. 主要是求有多少种组合.二维dp做的人多了,这里使用一维dp就能够了. 一维的转换方程:dp[j] = dp[j-i] + dp[j];当中i代表重量,j代表当前背包容量. 意思就是 ...
- mysql 分页sql
-- pageSize=3 pageIndex total=7 -- 开始行号 startRowNum=(pageIndex-1)*pageSize+1; -- 结束行号 endRowNum=page ...
- java中main方法的 (String []args)
java中main方法的 (String []args) String[] args是main函数的形式参数,可以用来获取命令行用户输入进去的参数.java 本身不存在不带String ...
- MathType怎么编辑双箭头
很多的数学相关工作者在写文章或论文的时候常常会用到数学公式编辑器.MathType就是一款深受大家欢迎的公式编辑器.很多的用户在使用过程中会用到双箭头符号来表示推理过程,但是怎么编辑又不知道,下面本教 ...
- Python爬虫(八)
源码: import requests import re from my_mysql import MysqlConnect import time,random # 获取招聘详情链接 def ge ...
- Laravel5.1 表单验证
当我们提交表单时 通常会对提交过来的数据进行一些验证.Laravel在Controller类中使用了一个traint:ValidatesRequest.方便我们在控制器中使用验证器. 下面我们就来看一 ...
- Linux命令之乐--md5sum
md5sum命令用于生成和校验文件的md5值.它会逐位对文件的内容进行校验,它常用于检查文件的完整性. 读取文件的MD5值 [root@new ~]# md5sum /usr/local/sbin/* ...
- Struts 2再曝远程代码执行漏洞S2-037
导读今年4月份,Apache Stuts 2之上发现的S2-033远程代码执行漏洞,以迅雷不及掩耳之势席卷而来.其利用代码很快就在短时间内迅速传播.而且官方针对这个高危漏洞的修复方案还是无效的. 悲剧 ...
- Math.max得到数组中最大值
Math.max(param1,param2) 因为参数不支持数组. 所以可以根据apply的特点来解决, var max = Math.max.apply(null,array),这样就可以轻易的得 ...
- cocos2d-x常用工具
这些工具平常也用到,不过没有像这样整理出来,这是我在网上看到的.就记录一下. 位图字体工具Bitmap Font Tools BMFont (Windows)FonteditorGlyph Desig ...