今天主要介绍MySQL数据库,或者说所有数据库的三个关键性能指标:qps每秒处理的查询数tps每秒处理的事务数IOPSper磁盘每秒执行的I/O操作数1.TPS(适用于innodb)1.概念TransactionsPerSecond(每秒处理的事务数),即服务器每秒钟处理的事务数第二。TPS包括消息输入和消息输出,以及用户数据库访问。(业务TPS=CAPS×平均每次调用TPS)TPS是软件测试结果的计量单位。事务是客户端向服务器发送请求,服务器响应的过程。客户端在发送请求时开始计时,收到服务器的响应后结束计时,从而计算所用时间和完成的事务数。通常,评估系统性能以每秒完成的技术事务数来衡量。系统的整体处理能力取决于处理能力最低的模块的TPS值。2.TPS计算(1)方法一Com_commit=SHOWGLOBALSTATUSLIKE'Com_commit';Com_rollback=SHOWGLOBALSTATUSLIKE'Com_rollback';Uptime=SHOWGLOBALSTATUSLIKE'Uptime';TPS=(Com_commit+Com_rollback)/Uptime(2)方法二useinformation_schema;selectVARInumRIABLE_STATUSABLEinto'COM_COMMIT';selectVARIABLE_VALUEinto@num_rollfromGLOBAL_STATUSwhereVARIABLE_NAME='COM_ROLLBACK';selectVARIABLE_VALUEinto@uptimefromGLOBAL_STATUSwhereVARIABLE_NAME='UPTIME';select(@num_com+@num_roll)/@DBALBACK';selectVARIABLE_VALUEinto@uptimefromGLOBAL+STATUSwherenumVARIABLE_NAME=@'Innocom_roll);其中VARIABLE_NAME='UPTIME';QPS是衡量特定查询服务器在指定时间内处理多少流量的指标。在互联网上,一台机器作为域名系统服务器的性能,往往以每秒的查询率来衡量。对应fetches/sec,即每秒响应请求数,即最大吞吐量。2.qps计算(1)方法方法问题=showglobalstatuslike'questions';uptime=showglobalstatuslike'uptime'Uptime'Uptime';qps=问题/uptime/uptime(2)useInformation_schema_schema;;select@num_queries/@uptime;第三,IOPS1。概念IOPS(Input/OutputPerSecond)是每秒的输入输出量(或读写次数),是衡量磁盘性能的主要指标之一。IOPS是指系统在单位时间内可以处理的I/O请求数,一般以每秒处理的I/O请求为单位,I/O请求通常是读或写数据操作请求。对于频繁随机读写的应用,比如OLTP(OnlineTransactionProcessing),IOPS是关键的衡量指标。另一个重要指标是数据吞吐量(Throughput),指单位时间内可以成功传输的数据量。对于大量顺序读写的应用,比如VOD(VideoOnDemand),更需要关注吞吐量指标。传统磁盘本质上是一种机械设备,如FC、SAS、SATA磁盘,其速度通常为5400/7200/10K/15Krpm。影响磁盘的关键因素是磁盘服务时间,即磁盘完成一个I/O请求所花费的时间,它由三部分组成:寻道时间、旋转延迟和数据传输时间。寻道时间Tseek是指将读写头移动到正确磁道所需的时间。寻道时间越短,I/O操作越快。目前磁盘的平均寻道时间一般为3-15ms。旋转延迟旋转是指磁盘旋转移动到读写磁头下请求数据所在的扇区所需的时间。旋转延迟取决于磁盘的旋转速度,通常用磁盘旋转一次所需时间的1/2来表示。例如,7200rpm的磁盘平均旋转延迟约为60*1000/7200/2=4.17ms,而15000rpm的磁盘平均旋转延迟约为2ms。数据传输时间Ttransfer是指完成请求数据传输所需的时间,它取决于数据传输速率,其值等于数据大小除以数据传输速率。目前IDE/ATA可以达到133MB/s,SATAII可以达到300MB/s的接口数据传输率,数据传输时间通常比前两部分短很多。IOPS可以细分为以下几个指标:TotalIOPS,混合读写和顺序随机I/O负载条件下的磁盘IOPS,最符合实际I/O情况,大多数应用都关注这个指标。随机读取IOPS,100%随机读取负载下的IOPS。随机写入IOPS,100%随机写入负载下的IOPS。SequentialReadIOPS,100%顺序负载读取条件下的IOPS。顺序写入IOPS,100%顺序写入负载下的IOPS。IOPS测试基准工具主要有Iometer、IoZone、FIO等,可以综合使用来测试磁盘在不同情况下的IOPS。对于应用系统,首先需要确定数据的负载特性,然后选择合理的IOPS指标进行测量和对比分析,从而选择合适的存储介质和软件系统。2.IOPS计算理论上可以计算出磁盘的最大IOPS,即IOPS=1000ms/(Tseek+Troatation),忽略数据传输时间。假设磁盘的平均物理寻道时间为3ms,磁盘转速为7200、10K、15Krpm,则磁盘的理论最大IOPS分别为,IOPS=1000/(3+60000/7200/2)=140IOPS=1000/(3+60000/10000/2)=167IOPS=1000/(3+60000/15000/2)=2003案例需求:20TB存储空间同时满足4500IOPS+RAID5,如何我应该计算吗?RAID5或RAID1/数据为0时需要多少块硬盘?首先,您需要知道I/O中读取操作(Read)和写入操作(Write)的百分比。然后用下面的公式将主机的IOPS要求换算成硬盘实际的IOPS负载:假设4500IOPS下读写比为2:1,则不同RAID类型的DriveIOPS要求如下:RAID1/0:(2/3)*4500+2*(1/3)*4500=6000IOPSRAID5:(2/3)*4500+4*(1/3)*4500=9000IOPSRAID6:(2/3)*4500+6*(1/3)*4500=12000IOPS然后参考下表中不同类型硬盘的IOPS参数得到需要多少个硬盘:假设使用FC15KRPM硬盘,则:RAID1/0:6000/180=34个RAID5:9000/180=50个RAID6:12000/180=67个blocks注意:在实践中,您需要考虑VaultDrivers(总共5个blocks)和HotSpares(每个blocks一个)推荐30个硬盘)。最后,如果选择600GB的FC硬盘来实现20TB的可用空间,那么RAID1/0需要78块,RAID5需要42块。
