1. 性能指标概览
QPS(Queries Per Second)就是每秒的查询数,对数据库而言就是数据库每秒执行的 SQL 数(含 insert、select、update、delete 等)。
TPS(Transactions Per Second)就是每秒的事务数。TPS 对于数据库而言就是数据库每秒执行的事务数,以 commit 成功次数为准。
IOPS 每秒磁盘进行的I/O操作次数
2. 指标计算方式
2.1 TPS
适用innodb Transactions Per Second(每秒传输的事物处理个数),即服务器每秒处理的事务数一般的,评价系统性能均以每秒钟完成的技术交易的数量来衡量。系统整体处理能力取决于处理能力最低模块的TPS值。
mysql> SHOW GLOBAL STATUS LIKE 'Com_commit';+---------------+-------+| Variable_name | Value |+---------------+-------+| Com_commit | 22402 |+---------------+-------+1 row in set (0.00 sec)mysql> SHOW GLOBAL STATUS LIKE 'Com_rollback';+---------------+-------+| Variable_name | Value |+---------------+-------+| Com_rollback | 0 |+---------------+-------+1 row in set (0.00 sec)mysql> SHOW GLOBAL STATUS LIKE 'Uptime' -> ;+---------------+-------+| Variable_name | Value |+---------------+-------+| Uptime | 3319 |+---------------+-------+1 row in set (0.01 sec)TPS=(Com_commit + Com_rollback)/Uptime
2.2 QPS
同时适用与InnoDB和MyISAM 引擎 每秒查询率QPS是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准 对应fetches/sec,即每秒的响应请求数,也即是最大吞吐能力。
2.3 IOPS
IOPS (Input/Output Per Second)即每秒的输入输出量(或读写次数),是衡量磁盘性能的主要指标之一。IOPS是指单位时间内系统能处理的I/O请求数量,一般以每秒处理的I/O请求数量为单位,I/O请求通常为读或写数据操作请求。随机读写频繁的应用,如OLTP(Online Transaction Processing),IOPS是关键衡量指标。另一个重要指标是数据吞吐量(Throughput),指单位时间内可以成功传输的数据数量。对于大量顺序读写的应用,如VOD(Video On Demand),则更关注吞吐量指标。 IOPS可细分为如下几个指标:
Toatal IOPS,混合读写和顺序随机I/O负载情况下的磁盘IOPS,这个与实际I/O情况最为相符,大多数应用关注此指标。
- Random Read IOPS,100%随机读负载情况下的IOPS。
- Random Write IOPS,100%随机写负载情况下的IOPS。
- Sequential Read IOPS,100%顺序负载读情况下的IOPS。
- Sequential Write IOPS,100%顺序写负载情况下的IOPS。
IOPS的测试benchmark工具主要有Iometer, IoZone, FIO等,可以综合用于测试磁盘在不同情形下的IOPS。对于应用系统,需要首先确定数据的负载特征,然后选择合理的IOPS指标进行测量和对比分析,据此选择合适的存储介质和软件系统。