连 QPS,TPS,RT,PV,UV 这些指标都不知道是什么意思,还敢说自己懂高并发?

简介: 连 QPS,TPS,RT,PV,UV 这些指标都不知道是什么意思,还敢说自己懂高并发?

废话不多说,直接开始。


QPS


原理:每天 80% 的访问集中在 20% 的时间里,这 20% 时间叫做峰值时间。


公式:( 总 PV 数 * 80% ) / ( 每天秒数 * 20% ) = 峰值时间每秒请求数(QPS)。


PV(page view)即页面浏览量,通常是衡量一个网络新闻频道或网站甚至一条网络新闻的主要指标。网页浏览数是评价网站流量最常用的指标之一,简称为 PV。


再来看一个计算机器数量的公式:


需要的机器数量:峰值时间每秒 QPS / 单台机器的 QPS。


举个例子,每天 300w PV 打在单台机器上,这台机器需要多少 QPS?


( 3000000 * 0.8 ) / (86400 * 0.2 ) = 139 (QPS)。


一般需要达到 139 QPS,因为是峰值。(200 万 PV 才有 100 峰值 QPS)


TPS


TPS:Transactions Per Second(每秒传输的事物处理个数),即服务器每秒处理的事务数。


TPS 包括一条消息入和一条消息出,加上一次用户数据库访问。


一个事务是指一个客户机向服务器发送请求然后服务器做出反应的过程。客户机在发送请求时开始计时,收到服务器响应后结束计时,以此来计算使用的时间和完成的事务个数。

一般的,评价系统性能均以每秒钟完成的技术交易的数量来衡量,系统整体处理能力取决于处理能力最低模块的 TPS 值。


RT(响应时长)


响应时间是指:系统对请求作出响应的时间(一次请求耗时)。


直观上看,这个指标与人对软件性能的主观感受是非常一致的,因为它完整地记录了整个计算机系统处理请求的时间。由于一个系统通常会提供许多功能,而不同功能的处理逻辑也千差万别,因而不同功能的响应时间也不尽相同,甚至同一功能在不同输入数据的情况下响应时间也不相同。所以,在讨论一个系统的响应时间时,人们通常是指该系统所有功能的平均时间或者所有功能的最大响应时间。当然,往往也需要对每个或每组功能讨论其平均响应时间和最大响应时间。


对于单机的没有并发操作的应用系统而言,人们普遍认为响应时间是一个合理且准确的性能指标。需要指出的是,响应时间的绝对值并不能直接反映软件的性能的高低,软件性能的高低实际上取决于用户对该响应时间的接受程度。


对于一个游戏软件来说,响应时间小于 100 毫秒应该是不错的,响应时间在 1 秒左右可能属于勉强可以接受,如果响应时间达到 3 秒就完全难以接受了。而对于编译系统来说,完整编译一个较大规模软件的源代码可能需要几十分钟甚至更长时间,但这些响应时间对于用户来说都是可以接受的。


Load(系统负载)


Linux 的 Load 是一个让新手不太容易了解的概念。Load 就是一定时间内计算机有多少个 active_tasks,也就是说是计算机任务执行队列的长度,CPU 计算的队列。


top/uptime 等工具默认会显示 1 分钟、5 分钟、15 分钟的平均 Load。


具体来说,平均 Load 是指,在特定的一段时间内统计的正在 CPU 中运行的(R 状态)、正在等待 CPU 运行的和处于不可中断睡眠的(D 状态)任务数量的平均值。

       

最后,说一下 CPU 使用率和 Load 的关系吧。如果主要是 CPU 密集型的程序在运行,那么 CPU 利用率高,Load 一般也会比较高。


If CPU utilization is near 100 percent (user + nice  +  system), the workload sampled is CPU-bound


而 I/O 密集型的程序在运行,可能看到 CPU 的 %user, %system 都不高,%iowait 可能会有点高,这时的 Load 通常也比较高。


同理,程序读写慢速 I/O 设备(如磁盘、NFS)比较多时,Load 可能会比较高,而 CPU 利用率不一定高。这种情况,还经常发生在系统内存不足并开始使用 swap 的时候,Load 一般会比较高,而 CPU 使用率并不高。


PV


页面访问次数:Page View。


UV


访客数(去重复):Unique Visitor。

以上。



目录
相关文章
|
消息中间件 JavaScript 小程序
面试官:你了解 QPS、TPS、RT、吞吐量 这些高并发性能指标吗?
面试官:你了解 QPS、TPS、RT、吞吐量 这些高并发性能指标吗?
|
监控 前端开发 JavaScript
不了解 QPS、TPS、RT、并发数、吞吐量,劝你简历别写熟悉高并发
分布式、微服务、Service Mesh目前都是大家耳熟能详的词语了,现在随便一个互联网公司说出来大家都是在搞微服务。 但我们搞来搞去,怎么样来衡量一个应用当前的状态到底是怎么样的?到底需不需要扩容?是需要横向扩容还是进行项目重构?
|
5月前
|
Java
在高并发环境下,再次认识java 锁
在高并发环境下,再次认识java 锁
36 0
|
5月前
|
消息中间件 NoSQL Java
Java高级开发:高并发+分布式+高性能+Spring全家桶+性能优化
Java高架构师、分布式架构、高可扩展、高性能、高并发、性能优化、Spring boot、Redis、ActiveMQ、Nginx、Mycat、Netty、Jvm大型分布式项目实战学习架构师之路
|
15天前
|
缓存 负载均衡 Java
Java高并发性能指标
Java高并发是指在Java编程环境中,系统能够同时处理大量并发请求或操作的能力。这里的“高”强调的是并发处理的数量级较大,需要系统能够有效地管理多个并发的执行单元,如线程或进程,以确保它们能够高效且正确地执行。
12 0
|
21天前
|
JavaScript Java 测试技术
基于Java的高并发慕课网的设计与实现(源码+lw+部署文档+讲解等)
基于Java的高并发慕课网的设计与实现(源码+lw+部署文档+讲解等)
24 2
|
5月前
|
Java Go C语言
高并发时代到底是Go还是Java?
作为一名用过Java和Go开发过微服务架构程序的在校学生的角度思考,本文将从以下几个方便来讲述Go和Java的区别。
|
5月前
|
Java 数据库连接 微服务
Java程序员必学知识:高并发+微服务+数据结构+Mybatis实战实践
BATJ最全架构技术合集:高并发+微服务+数据结构+SpringBoot 关于一线互联网大厂网站的一些特点:用户多,分布广泛、大流量,高并发、海量数据,服务高可用、安全环境恶劣,易受网络攻击、功能多,变更快,频繁发布、从小到大,渐进发展、以用户为中心。 如果你工作中够仔细,你会发现这些特点跟高并发、分布式、微服务、Nginx这些技术密切相关的,是因为只要你的公司在上升,用户量级都会与日俱增,高性能、高并发的问题自然避免不了,话不多说往下看。
|
5月前
|
算法 NoSQL Java
2023年阿里高频Java面试题:分布式+中间件+高并发+算法+数据库
又到了一年一度的金九银十,互联网行业竞争是一年比一年严峻,作为工程师的我们唯有不停地学习,不断的提升自己才能保证自己的核心竞争力从而拿到更好的薪水,进入心仪的企业(阿里、字节、美团、腾讯.....)
|
6月前
|
缓存 容灾 网络协议
Java面试题 -高并发、高可用、分布式
Java面试题 -高并发、高可用、分布式
86 0

热门文章

最新文章