究竟怎样进行数据库性能测试,数据库性能测试需要做些什么?大多数产品线的RD和QA也比较迷茫,经常过来咨询。

一般说来,做数据库性能测试需要如下几个步骤:

1:明确测试目的

2:设计测试模型 (即压力模型)

3:准备测试集群环境

4:准备压力测试工具或者编写压力测试脚本

5:明确性能指标并加监控

6:根据2设计的测试模型准备测试数据

7:测试执行

8:测试分析

本文依据以上步骤,模拟测试需求- 多实例多盘数据库的性能对比测试,制定测试方案公布给大家,方便大家了解数据库性能测试。

多实例多盘数据库性能测试方案

一、 测试目的

1. 对比数据库单实例、多实例的在不同硬件设备上的性能情况。

2. 对比单机单实例和多实例的性能情况

3. 验证网络带宽是否成为flash产品发挥性能优势的瓶颈。

4. 验证flash产品是否随时间存在性能衰减的可能。

二、 测试方法概述

测试基准工具:smart-slap(mysqlslap),Jmeter模拟若干客户端、若干用户执行指定的SQL语句,访问数据库。同时,通过监控工具监控系统负载、mysql数据库的服务,全面了解数据库系统以及硬件的负载情况。

href=”http://qa.baidu.com/blog/wp-content/uploads/2013/03/b1.JPG”>

测试模型

测试监控及结果统计

监控工具统计如下信息,分析性能瓶颈。

系统负载:

CPU:CUP_IDLE 、CPU_WA、SERVER_LOADAVG

内存:MEM_URATE、MEM_USED

网卡:NIC_TOTAL_IN、NIC_TOTAL_OUT、

数据库负载:

QPS:COM_READS、COM_WEITES

主从延迟:SECOND_BEHIND_MASTER

慢查询:SLOW_QUERIES_PT

连接数:THREADS_CONNECTED、THREADS_RUNNING

STL-tools 监控集群负载

附:性能指标:

系统负载:

CPU:CUP_IDLE 、CPU_WA、SERVER_LOADAVG

内存:MEM_URATE、MEM_USED

网卡:NIC_TOTAL_IN、NIC_TOTAL_OUT、

数据库负载:

QPS:COM_READS、COM_WEITES

主从延迟:SECOND_BEHIND_MASTER

慢查询:SLOW_QUERIES_PT

连接数:THREADS_CONNECTED、THREADS_RUNNING

三、 测试准备

测试环境准备

假设将四类IO存储设备,进行单、多实例的性能测试对比。则可以部署测试集群如下:

测试集群具体搭建:

2台机器 ——–4主4从

根据测试更换硬件:

RAID+SAS:

RAID+SSD:

Flash :

Fusion :

监控:在每台机器上部署数据库监控脚本monitor,最好有统一平台上调度、管理、分析monitor采集到的数据。

测试工具准备:

Smart-slap :

特点:全量发压力,可得到最大QPS,对比不同集群的最大QPS。分析不同集群的最大QPS.

Jmeter:

特点:控制实时压力,分析各集群在指定压力下的性能情况。

测试思路:

先采用slap进行对不同集群组合进行同样的sql压力。(压力时间)取得不同集群的最大QPS,进行对比。

取最大QPS的一定比率(如1/8倍,1/4倍,1/2倍,1倍)作为每秒发送的请求压力进行测试。比较各个集群的负载、数据库性能情况。

网络瓶颈测试:

同网段3台压力机器 往一个集群压足够多的IO压力。分析各个硬件的IO。磁盘、CPU比网卡提前到达压力阀值说明网卡不是瓶颈。若网卡IO先达到极限则说明网卡存在瓶颈。

硬件性能衰减测试

同样压力测试24小时,比较最初1小时,和最后1小时的 TPS.以及各项性能指标。

测试数据准备:

数据库: flashT

36张表:

Test1- test36 :

表结构:

CREATE TABLE `test1` (

`doc_id` int(10) unsigned NOT NULL default ’0′,

`main_status` tinyint(3) unsigned NOT NULL default ’0′,

`sub_status` tinyint(3) unsigned NOT NULL default ’0′,

`create_time` int(10) unsigned NOT NULL default ’0′,

cid1` smallint(5) unsigned NOT NULL default ’0′,

……………

PRIMARY KEY (`doc_id`)

);

数据量:

每个表达到5000W 行(大概30G)

36个表

说明:具体的测试库表结构、类型

每张表的测试数据量等都需要根据具体测试目的和测试场景进行设计。

四、 测试步骤

测试一: 不同集群配置,不同实例的性能对比测试

一: 数据构造,同时验证各硬件集群基本读、写性能。

1) 4个实例全部开启insert 5000W ;初步对比写性能.

用36个slap并发实例分别往36张表insert,往每个表插入5000W 行数据。

2) 4个实例全部开启,每张表20个select并发select。初步对比读性能。

用36个slap并发实例子每个实例20个并发select请求分别从36张表中取数据。

二:对比不同集群执行最常用SQL命令的性能情况

制定数据库系统最常用的SQL语句,数据库执行这些SQL语句的性能。用slap并发用户数从10,50,100,200。

三:对比不同集群处理最耗时SQL命令的性能情况

制定数据库系统最耗时的SQL语句,数据库执行这些SQL语句的性能。用slap并发用户数从10,50,100,200。

四:模拟事务处理,对比各集群性能情况。

模拟事物,,用slap并发用户数10,50,100,200,500,800,1000分析不同集群分别在多少并发用户数下,TPS值最大。

五:分析各集群在线事物处理能力。

模拟事务处理,根据步骤四得到的最大TPS,设置TPS的一定比率作为每秒事务数,用jemeter测试,并发,10,50,100,200,500,800,1000.分析各个并发各种集群下的响应时间分布和其他各项性能指标。分析TPS情况最好的并发数。

测试二:网卡瓶颈测试

步骤一:分析测试一中的各项测试结果的CPU、磁盘、网卡等负载情况。

如果其他几项比网卡提前到达瓶颈。则说明网卡不会成为瓶颈。相反进入步骤二。此外,如果测试一中的各项测试磁盘,网卡,CPU等均未达到瓶颈。则将测试一中的步骤四,增大并发压力,直到出现负载瓶颈。

步骤二:调整测试。

测试三:硬件是否衰减情况。

步骤:用jmeter 持续测试24小时。

用测试一中的步骤五得到的最好TPS的并发数作为此次测试的并发数,用Jmeter并发测试24小时,分析第一个小时和最后一个小时的TPS,和响应时间分布。

(注意每一次测试命令中,涉及查询条件的值随机分布)

五、 总结:

关于数据库性能测试,只要掌握了压力测试工具。最关键的还是设计出符合业务的测试模型,以及测试完成后的测试分析。通过实践抽象出测试模型,进行自动化,则测试过程可以事半功倍。

mysql数据库性能测试实例_数据库性能测试方案示例相关推荐

  1. 删除mysql多个实例_多实例数据库删除实例

    需要说明一下,这篇文章不是介绍如何完整的删除包括CLUSTER在内的RAC环境,而只是在数据库层介绍如何删除一个实例. 和添加实例一样,这个步骤也包括手工方式和工具方式两种. 不过利用工具删除实例是非 ...

  2. 查询mysql的服务名_数据库名实例名服务名

    数据库名:db_name数据库实例名:instance_name 操作系统环境变量:oracle_sid数据库服务名:service_names 数据库域名:db_domain全局数据库名:globa ...

  3. mysql多租户视频_数据库实现多租户支持的思路

    前言 在云领域我们经常会听到一个词:多租户.这个词在不同的语境中有着不同的含义,接下来将从理论到实践对以往的项目进行一次总结,同时实战一个Demo.本篇先从理论介绍云平台中的多租户的概念以及实现多租户 ...

  4. mysql数据库简单介绍_数据库的简单介绍

    关系型数据库与非关系型数据库 关系型数据库:mysql /oracle/sql server/sqlite 优点: 1.易于维护:都是使用表结构,格式一致: 2.使用方便:sql语言通用,可用于复杂查 ...

  5. MySQL删除空值语句_数据库语句sql 删除空记录

    最简单删除SQL Server中所有数据的方法 原文:最简单删除SQL Server中所有数据的方法 最简单删除SQL Server中所有数据的方法   编写人:CC阿爸   2014-3-14 其实 ...

  6. mysql 查找相似数据_数据库存储引擎大揭秘,不看不知道这里面的骚操作可真多!...

    吊打各种树这篇文章 带大家学习一遍数据结构中的各种树,对数据结构还不够熟悉的同学,那篇文章可以作为基础入门,我画了很多图理解起来不困难,建议回头先学习下那篇文章,更容易理解本文要讲的内容. 文章里有提 ...

  7. 【MySQL 第10章_数据库的设计规范】

    第10章_数据库的设计规范 1. 为什么需要数据库设计 2.范式 2.1范式简介 2.2范式都包括哪些 2.3 键和相关属性的概念 2.4第一范式(1st NF) 2.5 第二范式(2nd NF) 2 ...

  8. mysql数据库的分离_数据库分离和附加 (SQL Server)

    数据库分离和附加 (SQL Server)Database Detach and Attach (SQL Server) 06/30/2020 本文内容 适用于:Applies to: SQL Ser ...

  9. mysql双机互备linux成功的_配置MySQL双机热备 - Linux服务器MySQL双机热备份试验_数据库技术_Linux公社-Linux系统门户网站...

    二.配置MySQL双机热备 传统模式都是采用MySQL双机互备,至于双机热备我搜索了大量的精华帖子都没有发现安装配置文档.故我的一个想法产生了:当建立新的数据库时,默认会建立到/usr/local/m ...

最新文章

  1. 新手的深度学习综述 | 入门
  2. vue --- ref属性获取dom元素和子组件的方法
  3. krsort_PHP krsort()函数与示例
  4. 施乐700彩机服务器显示c4,施乐彩色数码复印机故障代码大全
  5. DispatcherServlet详解
  6. 查询手机号段对应地区编码_Elasticsearch实战 | 如何从数千万手机号中识别出情侣号?...
  7. 3D MRI brain tumor segmentation using autoencoder regularization
  8. adb查看某个文件是否存在_android – 使用ADB检查目录是否存在,如果存在则推送文件...
  9. 算法洗脑系列(8篇)——第四篇 枚举思想
  10. fspecial matlab 自己实现,matlab中fspecial中生成高斯模板的解释以及c语言兑现
  11. 如何用吹风机计算机主机清理,用吹风机吹电脑里的灰尘可以吗?
  12. XAMPP下安装微博模板
  13. 用python实现二分法求平方根_二分法求平方根(Python实现)
  14. 数字逻辑课程设计#Quartus II
  15. c# cad中插入另一个dwg的图块
  16. [2017集训队作业自选题#149]小c的岛屿
  17. DESKTOP.INI
  18. 关于C/C++中的short类型
  19. 数据可视化 — 01_svg+echarts实现自定义厂区平面图
  20. nc608串口服务器型号,康海时代NC608系列产品信息

热门文章

  1. 计算机图形图像知识梳理,计算机图形学知识点总结
  2. 小米手机刷机失败之小米La¥%¥Ji
  3. 21和22端口 在java中的使用
  4. 安卓直播详细教程(三)-----ijkplayer打造个性化控制界面
  5. 【超图】SuperMap iClient3D 11i for WebGL新产品食用指南(一)
  6. maximo安全组没有添加用户的权限
  7. yolov5 继续训练
  8. matlab sisotool工具DEMO
  9. uniapp引用外部js_Uniapp怎么引入外部js
  10. JavaWeb-SpringBoot 学习笔记(1) class path resource [Beans.xml] cannot be opened because it does not exis