🌹作者主页:青花锁 🌹简介:Java领域优质创作者🏆、Java微服务架构公号作者😄
🌹简历模板、学习资料、面试题库、技术互助🌹文末获取联系方式 📝
系列专栏目录
[Java项目实战] 介绍Java组件安装、使用;手写框架等
[Aws服务器实战] Aws Linux服务器上操作nginx、git、JDK、Vue等
[Java微服务实战] Java 微服务实战,Spring Cloud Netflix套件、Spring Cloud Alibaba套件、Seata、gateway、shadingjdbc等实战操作
[Java基础篇] Java基础闲聊,已出HashMap、String、StringBuffer等源码分析,JVM分析,持续更新中
[Springboot篇] 从创建Springboot项目,到加载数据库、静态资源、输出RestFul接口、跨越问题解决到统一返回、全局异常处理、Swagger文档
[Spring MVC篇] 从创建Spring MVC项目,到加载数据库、静态资源、输出RestFul接口、跨越问题解决到统一返回
[华为云服务器实战] 华为云Linux服务器上操作nginx、git、JDK、Vue等,以及使用宝塔运维操作添加Html网页、部署Springboot项目/Vue项目等
[Java爬虫] 通过Java+Selenium+GoogleWebDriver 模拟真人网页操作爬取花瓣网图片、bing搜索图片等
[Vue实战] 讲解Vue3的安装、环境配置,基本语法、循环语句、生命周期、路由设置、组件、axios交互、Element-ui的使用等
[Spring] 讲解Spring(Bean)概念、IOC、AOP、集成jdbcTemplate/redis/事务等
前言
一个系统的性能,我们通常需要关注哪些指标呢?
不管是作为后端、测试工程师,还是产品,都会关注到系统的流量指标,文本将总结一些常见的性能指标。
1、概念
1.1、 QPS(每秒查询)
QPS(Queries Per Second),即“每秒查询率”,是一台服务器每秒能够响应的查询次数,是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准,主要针对专门用于查询的服务器的性能指标。
互联网中,作为域名系统服务器的机器的性能经常用每秒查询率来衡量。比如DNS,它不包含复杂的业务逻辑处理,比如数据库中的每秒执行查询sql的次数。QPS 只是一个简单查询的统计显然,不能描述增删改等操作,显然它不够全面,所以不建议用QPS来描述系统整体的性能。
1.2、TPS(每秒事务)
1.2.1、TPS(Transactions Per Second)
即每秒事务数。它是软件测试结果的测量单位。一个事务是指一个客户机向服务器发送请求然后服务器做出反应的过程。客户机在发送请求时开始计时,收到服务器响应后结束计时,以此来计算使用的时间和完成的事务个数。
1.2.2、QPS与TPS区别
- 对于一个页面的一次请求反应,形成一个TPS;
- 但一次页面请求,可能产生多次对服务器的请求,如访问一个页面会请求服务器2次,一次访问,产生一个“T”,产生2个“Q”。
1.3、RT(响应时间)
RT(Response time),即响应时间,执行一个请求从开始到最后收到响应数据所花费的总体时间,是一个系统最重要的指标之一,它的数值大小直接反应了系统的快慢。
1.4、并发量
并发数是指系统同时能处理的请求数量,这个也是反应了系统的负载能力。
1.5、吞吐量
从业务上来讲,可以理解为应用系统每秒钟最大能接受的用户访问量,或者每秒钟最大能处理的请求数。
1.6、PV(访问量)
PV(Page View), 页面浏览量或点击量,用户每次刷新即被计算一次。
1.7、UV(独立访客)
UV(Unique Visitor),访问您网站的一台电脑客户端为一个访客,当天相同的客户端只被计算一次。
2、吞吐量影响因素
系统吞吐量几个重要参数:QPS(TPS)、并发数、响应时间。
相关公式:
- Q P S ( T P S ) = 并发数 / 平均响应时间 QPS(TPS)= 并发数 / 平均响应时间 QPS(TPS)=并发数/平均响应时间
- 并发数 = Q P S ∗ 平均响应时间 并发数 = QPS * 平均响应时间 并发数=QPS∗平均响应时间
一个系统吞吐量通常由QPS(TPS)、并发数两个因素决定,每套系统这两个值都有一个相对极限值,在应用场景访问压力下,只要某一项达到系统最高值,系统的吞吐量就上不去了,如果压力继续增大,系统的吞吐量反而会下降,原因是系统超负荷工作,上下文切换、内存等等其它消耗导致系统性能下降。
3、相关计算
按二八定律来看,如果每天80%的访问集中在20%的时间里,这20%的时间就叫做峰值时间。
【公式】
- 峰值时间每秒请求数 ( Q P S ) = ( 总 P V 数 ∗ 80 % ) ( 每天 24 小时秒数 ∗ 20 % ) 峰值时间每秒请求数(QPS) =\frac{(总PV数*80 \%)}{(每天24小时秒数*20 \%)} 峰值时间每秒请求数(QPS)=(每天24小时秒数∗20%)(总PV数∗80%)
- 需要的机器 = 峰值时间每秒 Q P S 单台机器的 Q P S 需要的机器 =\frac{峰值时间每秒QPS}{单台机器的QPS} 需要的机器=单台机器的QPS峰值时间每秒QPS
【示例】 - 每天500wPV的在单台机器上,这台机器需要多少QPS?
( 5000000 * 0.8 ) / (86400 * 0.2 ) = 231 (QPS) - 如果一台机器的QPS是58,需要几台机器来支持?
231 / 58 = 4
资料获取,更多粉丝福利,关注下方公众号获取