今天主要介绍MySQL数据库或所有数据库的三个主要性能指标。
QS每秒处理的查询数
tps每秒处理的事务数
每秒IOPS磁盘I/O次数
一、TPS (适用于innodb ) )。
1 .概念
transactionspersecond(1 (每秒传输的事务数)是服务每秒处理的事务数。
TPS包括消息输入、消息输出和用户数据库访问。 (业务TPS=wwdxy 每呼叫平均TPS )
TPS是软件测试结果的测量单位。 事务是客户端向服务发送请求并由服务作出响应的过程。 客户端在发送请求时开始计数,并在服务器响应后退出计数,以计算使用的时间和已完成的事务数。
一般来说,评价系统的性能是以1秒钟内完成的技术交易数量来测定的。 整个系统的处理能力取决于处理能力最低的模块的TPS值。
2. TPS计算
(1)方法1
com _ commit=showglobalstatuslike ' com _ commit ';
com _ roll back=showglobalstatuslike ' com _ roll back ';
uptime=showglobalstatuslike ' uptime ';
TPS=(com_commitcom_rollback )/Uptime
)2)方法2
use信息_方案;
[ email protected ] _ comfromglobal _ statuswherevariable _ name=' com _ commit ';
[ email protected ] _ rollfromglobal _ statuswherevariable _ name=' com _ roll back ';
[电子邮件保护] _ statuswherevariable _ name=' uptime ';
选择(@ [ email protected ] _ roll )/@uptime;
二、QPS (同时适用于innodb和MyISAM引擎) ) ) ) )。
1 .概念
每秒查询率QPS是衡量特定查询服务器在规定时间内处理的业务量的标准,而在互联网上作为域名系统服务器的设备的性能往往是以每秒的查询率来衡量的。
支持fetches/sec,是每秒的响应请求数,也就是最大吞吐量能力。
2. QPS计算
(1)方法1
questions=showglobalstatuslike ' questions ';
uptime=showglobalstatuslike ' uptime ';
QPS=Questions/Uptime
)2)方法2
use信息_方案;
[电子邮件保护] _ queriesfromglobal _ statuswherevariable _ name=' questions ';
[电子邮件保护] _ statuswherevariable _ name=' uptime ';
[电子邮件保护] _ queries/@ uptime;
三. IOPS
1 .概念
输入/输出参数(IOPs )是每秒输入/输出量(或读写次数),是衡量磁盘性能的主要指标之一。 IOPS是系统每单位时间可以处理的I/O请求数,通常是每秒处理的I/O请求数。 I/O请求通常是读取或写入数据操作请求。 IOPS是在线翻译处理(OLTP )等读写频繁的APP应用中的重要指标。 另一个重要指标是数据吞吐量(Throughput ),它是指每单位时间可以成功传输的数据量。 在大量的顺序读写APP应用(如按需视频(VOD ) )中,关注吞吐量指标。
传统盘实质上是机械装置,如FC、SAS、SATA盘,转速通常为5400/7200/10K/15K rpm。 影响磁盘的主要因素是磁盘服务时间(磁盘完成一个I/O请求所需的时间),包括查找时间、旋转等待时间和数据传输时间三部分。
寻道时间Tseek是将读写磁头移动到正确轨道所需的时间。 查找时间越短,I/O处理速度越快,当前磁盘的平均查找时间通常为3-15ms。
旋转延迟Trotation是指磁盘旋转并将请求数据所在的扇区移动到读/写磁头之下所需的时间。 旋转延迟取决于磁盘的转速,通常用磁盘旋转一周所需时间的1/2来表示。 例如,7200 rpm磁盘的平均旋转延迟约为60*1000/7200/2=4.17ms,而15000 rpm磁盘的平均旋转延迟约为2ms。
数据传输时间Ttransfer是指完成所请求的数据传输所需的时间,取决于数据传输速率,数据大小除以数据传输速率。 目前,IDE/ATA可以达到133MB/s秒、SATA
II可达到300MB/s的接口数据传输率,数据传输时间通常远小于前两部分时间。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指标进行测量和对比分析,据此选择合适的存储介质和软件系统。
2. IOPS计算
理论上可以计算出磁盘的最大IOPS,即IOPS = 1000 ms/ (Tseek + Troatation),忽略数据传输时间。假设磁盘平均物理寻道时间为3ms, 磁盘转速为7200,10K,15K rpm,则磁盘IOPS理论最大值分别为,
IOPS = 1000 / (3 + 60000/7200/2) = 140
IOPS = 1000 / (3 + 60000/10000/2) = 167
IOPS = 1000 / (3 + 60000/15000/2) = 200
3. 案例
需求:20TB存储空间同时满足4500 IOPS+RAID 5,我应该如何计算?RAID 5或者RAID 1/0的时候分别需要多少块硬盘?
首先需要知道I/O中读操作(Read)与写操作(Write)所占的百分比。然后通过下列公式,将主机的IOPS需求转换成硬盘实际IOPS负载:
假定4500 IOPS中读/写比是2:1,则不同RAID类型Drive IOPS要求分别如下:
RAID1/0:(2/3)*4500+2*(1/3)*4500=6000IOPS
RAID5:(2/3)*4500+4*(1/3)*4500=9000IOPS
RAID6:(2/3)*4500+6*(1/3)*4500=12000IOPS
再参照下表中不同类型硬盘单块IOPS参数,得出需要多少块硬盘:
假定选用FC 15K RPM硬盘,则:
RAID1/0:6000/180=34块
RAID5:9000/180=50块
RAID6:12000/180=67块
注:实际情况下还需考虑Vault Drivers (共5块)以及Hot Spares (建议每30块硬盘一个)。
最后,如果选用600GB FC硬盘来实现20TB可用空间,则RAID 1/0需要78块,RAID 5需要42块。