zoukankan      html  css  js  c++  java
  • 高性能MySql学习笔记第二章:MySQL 基准测试

    一、基准测试的策略

    基准测试有两种主要的策略,一是针对整个系统的整体测试,另外是单独测试MySQL。这两种策略也被称为集成式和单组件式基础测试。

    • 测试指标
    1. 吞吐量:吞吐量是指单位时间内的事务处理数。这类基准测试主要针对在线事务处理的(OLTP)吞吐量,常用的测试单位每秒事务数(TPS)或每分钟事务数(TPM),常见的标准有TPC-C。
    2. 响应时间或延迟:这个指标用于测试任务所需的整体时间。,通常可使用百分比相应时间来替代最大响应时间,比如PCT95,PCT99等。
    3. 并发性:并发性基准测试需要关注的是正在工作中的并发操作,或者是同时工作中的线程数或者连接数。当并发性增加时,需要策略吞吐量是否下降,响应时间是否变长。可以通过sysbench指定32、64或128个线程的测试,然后在测试期间记录MySQL数据库的Threads_running状态值。
    4. 可拓展性:可拓展性是指,给系统增加一倍的工作,在理想情况下就能获得两倍的结果(即吞吐量增加一倍)。或者说给系统增加一倍的资源(比如两倍的CPU),就可以获得两倍的吞吐量。同时性能(响应时间)也必须在可接受的范围内。

    二、基准测试的方法

    • 规划基准测试的第一步是提出问题并明确目标,然后决定是采用标准的基准测试还是设计专用的测试。如果是采用标准的基准测试,应该确认选择了合适的测试方案。例如,不要使用TPC-H测试电子商务系统,因为TPC-H是即席查询和决策支持型应用的基准测试,不适合用来测试OLTP系统。
    • 执行基准测试时,需要记录系统状态和性能指标,比如CPU利用率,磁盘IO,网络流量,SHOW GLOBAL STATUS 计数器等。
    • SHOW ENGINE INNODB STATUSSHOW FULL PROCESSLIST

    三、基准测试的工具

    • 集成式测试工具
    1. ab: ab是一个apache HTTP服务器基准测试工具。可以测试HTTP服务器每秒可以满足多少请求。
    2. http_load: 和ab类似,但是比ab更加灵活,具有更多功能。
    3. JMeter: 设计用来测试web应用,也可以用于测试FTP服务器,或者通过JDBC进行数据库查询测试。
    • 单组件式测试工具
    1. mysqlslap: 可以模拟服务器的负载,并输出计时信息。它包含在MySQL5.1的发行包中,在MySQL4.1之后都可以使用。
    2. MySQL Benchmark Suite(sql-bench): MySQL发行包中一款自带的基准测试套件,可以在不同数据库服务器上进行比较测试。好处在于包含了大量预先定义的测试,容易使用。缺点则有很多限制,比如:单用户、测试数据集小、单线程串行执行。
    3. Super Smack: 一款用于MySQL和PostgreSQL的基准测试工具,可以提供压力测试和负载生成。
    4. Database Test Suite: 由开源软件开发实验室(OSDL)设计,一款类似某些工业标准测试的测试工具集,其中的dbt2就是一款免费的TPC-C OLTP测试工具(未认证)。
    5. sysbench: 一款多线程系统压测工具。
    6. BENCHMARK()函数: MySQL内置函数,可以测试某些特定操作的执行速度,参数是需要执行的表达式和执行次数。

    如果刚刚接触基准测试,至少应该熟悉sysbench

  • 相关阅读:
    P1030 求先序排列 P1305 新二叉树
    spfa
    Clairewd’s message ekmp
    Cyclic Nacklace hdu3746 kmp 最小循环节
    P1233 木棍加工 dp LIS
    P1052 过河 线性dp 路径压缩
    Best Reward 拓展kmp
    Period kmp
    Substrings kmp
    Count the string kmp
  • 原文地址:https://www.cnblogs.com/lianggx6/p/14240668.html
Copyright © 2011-2022 走看看