写这篇文章的目的是为了给出Mysql压力测试的工具,以及相关的性能评估说明。
先说说压力测试为了测试什么?
TPS Transaction per second 每秒的事物数
QPS Queries per second 每秒的查询数
RT Respond time 响应时间
稳定性
CPU
IO
内存
网络
看工具之前先普及下,什么是基准测试 TPC TPC-C
TPC
(transaction processing performance council)被称为事务处理性能委员会,负责定义诸如 TPC-C、TPC-H&TPC-R 和 TPC-W 基准测试之类的事务处理与数据库性能基准测试,并依据这些基准测试项目发布客观性能数据。
TPC-C 于 1992 年 7 月 23 日认可为新的基准测试。TPC-C是衡量联机事务处理(OLTP,Online Transaction Processing)系统的工业标准,是行业中公认的权威和最为复杂的在线事务处理基准测试。它通过模拟仓库和订单管理系统,测试广泛的数据库功能,包括查询、更新和 mini-batch事务(队列式小批量事务)。TPC-C基准测试针对一种模拟订单录入与销售环境测量每分钟商业事务(tpmC)吞吐量。
说白了,TPC-C就是一套规范,一套测试标准,
更贴近目前用户的应用,对于行业客户选购及部署
IT
系统平台更具指导作用,是衡量产品性能和应用价值的重要测试依据,是IT业界测试的一个权威。
压力测试工具有哪些?
1.FIO
简单来说,Fio是用来测试系统IO性能的工具,它的强大之处在与提供了一套测试框架,能够支持多线程多进程的IO测试,用户只需进行参数的配置,便能够方便地定制不同的IO行为(顺序读写,随机读写等),并对其性能进行监测。其作者Jens Axboe是linux内核IO部分的maintainer。而gfio则是Fio的图形监测工具,它提供了图形界面的参数配置,和性能监测图像。
2.tpcc-mysql
Tpcc-mysql是percona基于tpcc衍生出来的产品,专用于mysql基准测试,
能测试出当前MySQL的每分钟事务数(TPmC)。
适用于基准测试---TPC-C测试
3.DBT2
数据库测试套件(Database Test Suite)中的dbt2 是一款免费的TPC-C 测试工具。TPC-C 是TPC 组织发布的一个测试规范,用于模拟测试复杂的在线事务处理系统(OLTP)。它的测试结果包括每分钟事务数(tpmC),以及每事务的成本(Price/tpmC)。这种测试的结果非常依赖硬件环境,所以公开发布的TPC-C 测试结果都会包含具体的系统硬件配置信息。
适用于基准测试---TPC-C测试
4.sysbench
sysbench是一个开源的、模块化的、跨平台的多线程性能测试工具,可以用来进行CPU、内存、磁盘I/O、线程、数据库的性能测试。目前支持的数据库有MySQL、Oracle和PostgreSQL。
适用于基准测试---只读测试
适用于基准测试---读写比自定义测试