美文网首页
Mysql基准测试

Mysql基准测试

作者: 白衣渡人_a063 | 来源:发表于2018-11-06 15:17 被阅读0次

简介:基准测试(benchmark)是针对系统设计的一种压力测试,通常为了掌握系统的行为,或重现某个系统状态,或做新硬件的可靠性测试
测试工具:sysbench

为什么要基准测试

基准测试时唯一方便有效的、可以学习系统在给定的工作负载下会发生什么的方法。基准测试可以在系统实际负载之外创造一些虚构的场景进行测试

  • 验证基于系统的假设,确定假设是否符合实际情况
  • 重现系统中的某些异常行为,以解决这些异常
  • 测试系统当前的运行情况
  • 模拟比当前系统更高的负载
  • 规划未来业务的增长
  • 测试应用适应可变华景的能力
  • 测试不同的硬件、软件和操作系统的配置
  • 证明新采购的设备是否配置正确
  • 应用创建单元测试套件

基准测试策略

有两种主要的策略:1.针对整个系统的整体测试(集成式(full-stack));2.单独测试Mysql(单租件式(single-component))

集成式:

  • 测试整个应用系统,包括web服务器,应用代码整体性能等
  • Mysql并非总是应用的瓶颈
  • 只有针对整体测试,才能发现各部分之间的缓存带来的影响
  • 整体应用的测试能更真实的揭露系统的表示

单组件式:

  • 需要比较不同的schema或查询的性能
  • 针对应用的某个问题的测试
  • 避免漫长的基准测试

测试指标

吞吐量

吞吐量指的是单位时间内的事物处理数量,经典的数据库应用测试指标,测试单位 每秒事物数(TPS) 每分事物数(TPM)

响应时间或延迟

这个指标测试任务所需的整体时间,通畅使用百分比时间来替代最大响应时间。测试结果使用图表表示更容易理解

并发性

应该测试在任意时间有多少同时发生的并发请求,而非在线数

可扩展性

可扩展性帮助发现当前系统的瓶颈

指标测试应当遵循实际业务情况,而非只关心某几种指标的性能

基准测试方法

1设计和规划基准测试

a.标准的基准测试 b.设计专业的测试

  • 测试时应当详细的写下测试规划,记录测试数据、系统配置的步骤,如何测量和分析结果,以及预热的方案等。
  • 建立将参数和结果文档化的规范,每一轮测试都必须进行详细记录

2获取系统的性能和状态

执行基准测试时需要尽可能多收集被测试系统的信息。最好为基准测试建立一个目录,并且没执行一轮测试都创建单独的子目录,将测试结果、配置文件、测试指标、脚本和其他相关说明多保存在其中。

  • 可以采取脚本方式定时获取系统状态并记录

基准测试工具

集成式测试工具

ab

ab是Apache HTTP服务器基准测试工具,可以测试http服务器每秒多少请求,只能针对单个URL进行尽可能快的压力测试

http_load

和ab类似,比ab灵活,可以通过一个输入文件提供多个url,load在这些url中随机算则进行测试,也可以定制http_load,使其按照时间比率进行测试

参数 含义
-parallel 简写-p 含义是并发的用户进程数。
-fetches 简写-f 含义是总计的访问次数
-rate 简写-p 含义是每秒的访问频率
-seconds简写-s 含义是总计的访问时间

举个栗子:http_load -p 20 -s 10 urls.txt
返回结果:
500 fetches, 20 max parallel, 92500 bytes, in 10 seconds
185 mean bytes/connection
50 fetches/sec, 9250 bytes/sec
msecs/connect: 193.104 mean, 233.949 max, 184.651 min
msecs/first-response: 194.718 mean, 211.365 max, 186.773 min HTTP response codes:
code 200 -- 49

结果说明

1.500 fetches, 20 max parallel, 92500 bytes, in 10 seconds
说明在上面的测试中运行了49个请求,最大的并发进程数是2,总计传输的数据是92500 bytes,运行的时间是10.0148秒
2.185 mean bytes/connection
说明每一连接平均传输的数据量92500/500=185
3.50 fetches/sec, 9250 bytes/sec
说明每秒的响应请求为50,每秒传递的数据为9250 bytes/sec
4.msecs/connect: 193.104 mean, 233.949 max, 184.651 min
说明每连接的平均响应时间是93.104 msecs,最大的响应时间233.949 msecs,最小的响应时间184.651 msecs
5.msecs/first-response:194.718 mean, 211.365 max, 186.773 min
6、HTTP response codes: code 200 -- 49
说明打开响应页面的类型,如果403的类型过多,那可能要注意是否系统遇到了瓶颈。
特殊说明:这里,我们一般会关注到的指标是fetches/sec、msecs/connect
他们分别对应的常用性能指标参数
Qpt-每秒响应用户数和response time,每连接响应用户时间。

测试的结果主要也是看这两个值。当然仅有这两个指标并不能完成对性能的分析,我们还需要对服务器的cpu、men进行分析,才能得出结论

JMeter

JMeter是一个java应用程序,可以加载其他应用并测试其性能,可测试web应用,ftp服务器或JDBC数据库查询测试等。

  • 可以控制预热时间
  • 更加灵活的模拟真实用户访问
  • 拥有绘图接口
  • 能够对测试进行记录
  • 离线重演测试结果

单组件式测试工具

mysqlslap

可模拟服务器负载,并输出计时信息,在Mysql发行包中,测试时可以执行并发连接数,并制定sql语句

Mysql Benchmark Suite(sql-bench)

用于不同数据库服务器上进行比较测试,单线程,主要用于测试服务器的查询速度。结果会显示那种类型的操作在服务器上执行更快。缺陷较多

Super Smack

基于Mysql和PostgreSQL的基准测试工具,可以提供压力测试和负载生成。可以模拟多用户访问、加载测试数据到数据库,并支持使用随机数据填充测试表,测试定义在“smack”文件中,它使用一种加单的语法定义测试的客户端、表、查询等测试要素。

Database Test Suite

偏工业标准的测试工具集

sysbench

多线程系统压测工具,它可以根据影响数据库服务器性能的各种因素来评估系统的性能。支持Mysql、操作系统和硬件的测试

  • 测试文件I/O
  • 测试操作系统调度器
  • 测试内存分配、传输速度
  • 测试POSIX线程
  • 测试数据库服务等

相关文章

  • mysql 基准测试

    mysql 基准测试 基准测试策略 基准测试指标 基准测试工具 基准测试样例

  • 什么是MySQL的基准测试

    1.MySQL基准测试 什么是基准测试: 基准测试是一种测量和评估软件性能指标的活动用于建立某个时刻的性能基准,以...

  • Mysql基准测试

    简介:基准测试(benchmark)是针对系统设计的一种压力测试,通常为了掌握系统的行为,或重现某个系统状态,或做...

  • MYSQL基准测试

    1.关于什么是OLTP,OLAP? OLTP:联机事务处理,侧重于存储数据,指的是传统的关系型数据库对即时数据的增...

  • MySQL基准测试

    一、定义: 基准测试是一种测量和评估软件性能指标的活动,用于建立某个时刻的性能基准,以便当系统发生软硬件变化时重新...

  • Mysql基准测试

    应用的性能很多时候都取决于数据库的性能,数据库的基准测试可以让我们知道数据库的性能怎样,瓶颈在哪。 基准测试的策略...

  • MySQL基准测试

    MySQL基准测试 原因 测试评估出当前系统的运行情况,建立性能基准线; 模拟更高负载,找出扩展性瓶颈; 规划未来...

  • Mysql基准测试

    什么是基准测试   是一种测量和评估软件性能指标的活动用于建立某个时刻的性能基准,以便当系统发生软硬件变化时重新进...

  • 高性能MySQL第二章 读书笔记

    第2章 MySQL基准测试 基准测试可以在系统的实际负载之外创造一些虚构场景进行测试。 基准测试的一个主要问题在于...

  • 压力测试工具 Mysqlslap

    一、MySQL自带的压力测试工具 Mysqlslap mysqlslap是mysql自带的基准测试工具,该工具查询...

网友评论

      本文标题:Mysql基准测试

      本文链接:https://www.haomeiwen.com/subject/xygyxqtx.html