【MySQL】数据库性能测试

  • 时间:
  • 浏览:1
  • 来源:5分快乐8_5分快乐8官网

当然你你你你你这个需求是对业务量相当大的什么都有有前要做的,之前 业务量极小前要忽略该环节。

       读写比

数据库硬件环境

比如说用户发起的有有有两个 业务请求,涵盖20次select,10次dml操作,单条sql,rt 为10ms,应用服务器 和db服务器网络交互 一次同城1ms -2ms,跨城5-15ms,单独db的响应时间就500*10=500ms 了,去掉 app与db的交互和业务补救,前端的补救时间,对于高并发的系统,吞度量不才能接受。

楼方鑫的一款压测工具,前要去onexsoft下载

注意压测系统的瓶颈

测试数据库新版本的性能  

CPU: load,usr cpu,

压测场景/模型

定制sql,模拟业务访问,动态修改,前要先部署好压测目标库,基础工作准备略多。

测试新机型的性能  

1.4 自动挂接性能数据 QPS,TPS,RT

难以模拟线上真实业务压力

只读,只写,RW,会话数,TPCC 才能模拟十个 业务场景

你你你你你这个是什么都有有和叶金荣讨论关于性能压测搞笑的话题什么都有有挂接的思维导图。具体的地址在http://vdisk.weibo.com/s/dCZasgFETrgn/14452650070,涵盖数据库压测的所有内容。当然详细都是 缺乏之处,欢迎大伙儿 给予建议和补充,才能使数据库压测结果更精准 ,为数据库性能/可用性评估提供有力帮助。

await:从请求磁盘操作到系统完成补救,每次请求的平均消耗时间,包括请求队列等待英文时间,单位是毫秒(1秒=50000毫秒)

mysqlslap  

关闭numa 在bios 里边设置 cpu 为最大性能模式,记得有一两次是之前 设置为更费油模式由于 性能突然出现问题报告 。初始化系统的什么都有有选折 ext4 之前 xfs 系统文件。内核参数主什么都有有 tcp 参数,影响业务app 和db之间建立网络连接。

随便说说数据库模型前要分为 io bond 类型 和cpu bond 类型,估计大伙儿 目前的oltp业务系统,绝大多数的业务系统属于 io bond 类型,大伙儿 的业务系统大多数也是详细都是 用了基于 ssd的存储形态学 ,之前 采用的raid 模式不一样一些是raid10 ,一些是raid 5 的差异。

sysbench是一款开源的多系统程序性能测试工具,前要执行CPU/内存/系统程序/IO/数据库等方面的性能测试。数据库目前支持MySQL/Oracle/PostgreSQL。是一款非常受dba 欢迎的压测工具。

1.2 模拟线上生产环境

工具  

TCPCOPY 是有有有两个 tcp 流量的实时一键复制工具,其1.0版本由网易工程师 @tcpcopy 开发和维护。一般用来将生产环境的线上流量实时一键复制到测试环境进行测试。类式新系统上线前,之前 大伙儿 希望进行一些基本的压力测试,没法大伙儿 前要直接利用 tcpcopy 来一键复制线上的流量过来对系统进行测试,什么都有有的好处是测试数据接近真实水平,且实施起来相对简单。下面大伙儿 将通过有有有两个 真实的使用案例,来简单介绍 tcpcopy 的基本使用最好的妙招。大伙儿 假定读者对 tcp 以及路由相关基本知识有一定了解。

每轮压测彼此补救相互干扰  

mysqlslap

结果分析

压测结束了了了什么都有有,发布压测报告。

在做性能压测的什么都有有前要注意 raid 卡的配置,尤其是读写策略 WB 模式和WT模式性能差异极大。生产业务上注意对raid卡的充放电,补救由于 模式变为WT 模式致使性能下降。

压测模型

svctm:平均每次设备I/O操作的服务时间 (毫秒)%util: 一秒涵盖百分之哪几只的时间用于 I/O 操作,之前 说一秒涵盖哪几只时间 I/O 队列是非空的

QPS ,TPS ,RT(响应时间)

1.1 根据业务需求制定压测计划

DB 层面

Tpcc-mysql

Sysbench

调整读写比

我最结束了了了了的一些压测场景没法做每次压测的隔离,由于 上次的压测结果影响了下一次的压测性能,致使系统rt不稳定。前要通过orzdba –innodbs 命令查看uckpt% 该参数表明还有哪几只日志没法被刷新到磁盘。

配置灵活

存储层面

模拟线上生产环境

系统

mydbtest  

随便说说你你你你你这个也什么都有有大伙儿 压测的目的/目标 ,新的db/机器/存储等上线和新技术预研,业务大促活动类式于11.11 之前 秒杀活动等等详细都是 前要提前进行压测的,评估数据库系统的性能容量和业务瓶颈,要不访问量过大由于 业务瘫痪 就比较麻烦了,选折 选折 离开客户对大伙儿 产品的信任了。

使用orzdba 观察 uckpt% 等待英文日志刷新完毕什么都有有再结束了了了了测试新一轮。  

模拟线上应用行为模式

模拟各种业务类型 创建订单,减库存 等等

选折 压测目标什么都有有大伙儿 要选折 何种压测场景进行压测,只读,只写,读写混合? 观察压测过程中的性能曲线与非 满足大伙儿 的期望,之前 真对性能突然出现可重复性抖动的问题报告 进行分析由于 并改进。

1.3 工具配置灵活

DB层

OS 层面

支持多种目标的测试 缺少业务场景支持

cpu,threads,mutex,memory,fileio,oltp

tcpcopy

讲完压测的目的,大伙儿 要讨论压测过程中之前 会遇到的问题报告 。之前 影响整体系统性能的因素大致分为:DB 层面、OS 层面 、存储层面。

MySQL OLTP benchmarking

验证一些DB/OS层面的参数  

压测报告

自动挂接性能数据

调整活跃/非活跃系统程序比例

这里我例举几种常见的开源数据库压测工具,仅仅讲述网上公开的how to 资料有什么都有有有,大伙儿 前要利用谷歌去搜索。

       IUD的比例

压测模式缺乏细化  

压测一些场景  

如ppt上所言,每个工具各有千秋,大伙儿 在压测的什么都有有前要选折 最适合被委托人业务/目的的压测工具。不过我被委托人推荐使用mydbtest 工具,其足够灵活性,适配行更强。

引用线上流量到测试环境,模拟真实压力

随便说说前要把每次压测当作是有有有两个 项目,包括压测目的是那些?新版本数据库上线?新功能? 新的机型 ?

适配多个脚本

前要人肉补救压测数据 获取QPS,TPS 等

 orzdba  vmstat  iostat  dstat

压测目的

tcpcopy  

比如cgroup 隔离 ,网卡绑定等等

控制并发度

Mydbtest 估计什么都有有人们没法使用过,什么都有有是楼方鑫在支付宝的什么都有有的有有有两个 压测工具,前要根据业务模型 配置业务的sql,利用线上的数据备份进行压测的一款工具,推荐大伙儿 尝试使用。

真实的线上压力,配置繁复,涉及线上环境,风险偏大。

Sysbench  

对于db层,我想有点强调对rt的监控,脱离业务场景的压测详细都是 耍流氓,什么都有有有压测报告都说qps,tps 极高,之前 没法敲定 对应的rt。大于生产需求的rt 阀值的压测结果详细都是 没法用的。

Mydbtest

支持分布式

使用最好的妙招简单,容易上手 测试最好的妙招/场景单一 TPCC      优点 业务场景固定,才能模拟商品购买流程 缺点 不才能代表被委托人公司业务场景。

真实的线上数据

不考虑场景,什么都有有耍流氓

       跨机房调用多台app server

不才能自动化获取压测结果

IO   :  await, svctm, %util  

网络:  recv , send

按需定制压测计划

在这里我提出的是有有有两个 设想,运维自动化足够高的公司前要向你你你你你这个方向靠近。

TPC(Tracsaction Processing Performance Council) 事务补救性能學會是有有有两个 评价大型数据库系统软硬件性能的非盈利的组织,TPC-C是TPC學會制定的,用来测试典型的繁复OLTP系统的性能;Tpcc-mysql是percona基于tpcc衍生出来的产品,专用于mysql基准测试,其源码放进bazaar上,之前 前要先安装bazaar客户端。值得说明的是 Tpcc-mysql 包括十个 补救逻辑,是比较贴近电商平台业务的有有有两个 压测工具New-Order :新订单 Payment :支付 Order-Status :订单查询 Delivery:发货 Stock-Level  :库存。

%iowait:显示用于等待英文I/O操作占用 CPU 总时间的百分比

对于MySQL层面,Buffer pool大小事务写磁盘,binlog落盘的策略,innodb 层的并发读设置  事务隔离级别 默认使用rc 详细都是 会影响到最终的压测写入性能表现。

压测新型存储的性能 某个厂商的SSD/nVME  

MySQL  自带的压测工具 单条SQL

支持分布式压测

mysqlslap是从5.1.4版结束了了了了的有有有两个 MySQL官方提供的压力测试工具。通过模拟多个并发客户端访问MySQL来执行压力测试,一并提供了比较详细的数据性能报告。以才能很好的对比多个存储引擎在相同环境下的并发压力性能差别。通过mysqlslap –help前要获得可用的选项,被委托人随便说说 mysqlslap是所有压测软件中最简单的。