TPS计算方法,实用

​​​​在这里插入图片描述

前段时间,项目这边需要评估下几个主要功能点的性能指标,问题其实并不难,但是发现一个很有意思的问题,一些同事居然不太理解TPS到底是个什么概念,往往和QPS分不清……

在这里给大家重申一下,

QPS = Query Per Second / Request Per Second

每秒查询次数 / 每秒请求次数 ,一般用于系统中“读请求/读操作”的性能评估指标。

这里不提事务,因为只读查询一般我们不加事务或者只使用数据库的只读事务。
举例说明,我们浏览电商平台的产品详情页的时候,就是一次“读请求/读操作”。

TPS = Transaction Per Second

每秒交易次数 / 每秒事务处理次数 ,一般用于系统中“写请求/写操作”的性能评估指标。

举例说明,我们在电商平台下订单,系统成功处理后,就是一次“写请求/写操作”。

关于如何做性能指标的监控,市场上有一些免费开源的工具可用。

我这边建议大家能手动测就手动测,因为压测工具也存在机器性能上的损耗造成的误差。

测试方法就是通过手动来抓取以下的数据库指标,来计算单位时间内的系统调用数据库的执行次数。

基于MySQL数据库,发几个实用的指标供大家参考,有条件者请牢记:

com_commit = show global status like 'com_commit';
com_rollback = show global status like 'com_rollback';
com_select = show global status like 'com_select';
com_insert = show global status like 'com_insert';
com_delete = show global status like 'com_delete';
com_update = show global status like 'com_update';
uptime = show global status like 'uptime';

TPS=(com_commit + com_rollback + com_select + com_insert + com_delete + com_update)/uptime

一般,我们会根据业务需要,对不同功能点进行压测,一般来说,读请求看QPS,写请求看TPS

在我看来,准确的评估一个系统吞吐量,一般以TPS指标为准,但是,如果问一个系统支持多少并发,那么我们也可以用QPS指标来表达。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章