PV UV TPS QPS
名词解释
PV
Page View,网页浏览量。网页被读者调用浏览的次数。网页每次打开或刷新一次页面,记录一次。用户对同一页面的多次访问,访问量累计。
UV
Unique Visitor,独立访问者。是指通过互联网访问、浏览这个网页的自然人。在一定时间内,访问网站的不同访客的数量,且每个访客只被统计一次。同一个客户端的电脑,00:00~24:00访问页面多次,只计算1次。例如,假设用户周三访问3次,周四访问1次,则周三记为1次PV,周四也记为1次PV。一般通过Cookies进行计算。
TPS
Transactions Per Second(每秒传输的事物处理个数),即服务器每秒处理的事务数。PS包括一条消息入和一条消息出,加上一次用户数据库访问。
QPS(或RPS Request Per Second)
Queries Per Second。每秒查询率。在规定时间内所处理流量多少的衡量标准。
对应fetches/sec,即每秒的响应请求数,也即是最大吞吐能力。
QPS = 并发数 / 平均响应时间
系统服务端性能影响的因素
衡量服务性能的指标,主要有两个:
- QPS(Query Per Second,每秒请求数)
- 响应时间(Response Time,RT),它可以理解为服务器处理响应的耗时。
正常情况下,响应时间越短,QPS则越高。在单线程的情况下,是呈线性关系。但也不是无限增长,RT总会有极限值。
多线程时,总QPS = (1000ms/ 响应时间)* 线程数。
响应时间与QPS的关系
对于Web系统,响应时间一般由CPU的处理时间和线程的等待时间组成。
通过减少线程的等待时间,对于系统的性能提升并不是很大。真正对性能有影响的是 CPU 的执行时间。
经过实际的测试,如果减少 CPU 一半的执行时间,就可以增加一倍的 QPS。
线程数对QPS的影响
根据公式 总QPS = (1000ms/ 响应时间)* 线程数
,直觉上,线程数增多QPS越高。实际上,线程数并不是越多越好。因为线程本身也占用资源,也受其他因素制约。例如,线程越多系统的线程切换成本就会越高,而且每个线程也都会耗费一定内存。(单线程语言,即使是在单台服务器上建立多个实例,也会受到服务器本身资源的限制。例如,nodeJS可以使用PM2,在一台服务器上启动多个线程,但是服务器本身资源的有限。)
如何设置合理的线程数
那么如何设置服务器上的线程数呢?通用公式如下:
线程数 = 2 * CPU核数 + 1
最佳实践的公式:
线程数 = [(线程等待时间 + 线程 CPU 时间) / 线程 CPU 时间] × CPU 数量
当然,最好的办法是通过性能测试发现系统的最佳线程数。
如何发现瓶颈
我们可以通过系统的监控工具,发现系统的性能瓶颈。通常会发生性能瓶颈的地方有CPU、内存、磁盘、网络、数据库等。
常见地,缓存系统容易发生瓶颈的地方是内存,储存型系统则是I/O。
如何简答判断CPU是否发生瓶颈了?我们可以观察,当 QPS 达到极限时,服务器的 CPU 使用率是不是超过了 95%,如果没有超过,那么表示 CPU 还有提升的空间。
性能优化的过程
- 发现短板。
- 减少数据。事实上,有两个地方特别影响性能。一是服务端在处理数据时不可避免地存在字符到字节的相互转化,二是 HTTP 请求时要做 Gzip 压缩,还有网络传输的耗时,这些都和数据大小密切相关。
- 数据分级。首屏数据、重要信息优先,次级信息异步加载。
- 减少中间环节。
附:性能测试指标
并发 | 响应时间 | 应用服务器cpu | 数据库服务器cpu | TPS |
---|---|---|---|---|
50 | 1s | 50% | 20% | 50 |
参考资料
作者:youthcity
链接:https://www.jianshu.com/p/f38b3876f522
来源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。
PV UV TPS QPS的更多相关文章
- 关于IT术语---ip、uv、pv、tps、qps、rps
涉及到IT方面的几条术语,这里要好好说道说道: 只要和网站打交道,难免会经常听到一系列的转有名词 >>> 系统今日UV多少.PV多少.QPS多少之类的问题.这里就对这些常见的术语 ...
- PV、TPS、QPS计算公式(转)
英文解释: PV=page viewTPS=transactions per secondQPS=queries per secondRPS=requests per second RPS=并发数/平 ...
- 转 PV、TPS、QPS 计算方法
PV.TPS.QPS是怎么计算出来的? QPS = req/sec = 请求数/秒 [QPS计算PV和机器的方式] QPS统计方式 [一般使用 http_load 进行统计]QPS = 总请求数 ...
- PV、TPS、QPS是怎么计算出来的?
PV=page viewTPS=transactions per secondQPS=queries per secondRPS=requests per second RPS=并发数/平均响应时间 ...
- PV、TPS、QPS是怎么计算出来的?(转载的)
QPS = req/sec = 请求数/秒 [QPS计算PV和机器的方式] QPS统计方式 [一般使用 http_load 进行统计] QPS = 总请求数 / ( 进程总数 * 请求时间 ) QPS ...
- 有关“数据统计”的一些概念 -- PV UV VV IP跳出率等
有关"数据统计"的一些概念 -- PV UV VV IP跳出率等 版权声明:本文为博主原创文章,未经博主允许不得转载. 此文是本人工作中碰到的,随时记下来的零散概念,特此整理一下. ...
- 日志分析_统计每日各时段的的PV,UV
第一步: 需求分析 需要哪些字段(时间:每一天,各个时段,id,url,guid,tracTime) 需要分区为天/时 PV(统计记录数) UV(guid去重) 第二步: 实施步骤 建Hive表,表列 ...
- mysql中TPS, QPS 的计算方式
今天突然有个同事问题一个问题, mysqlTPS和QPS的计算公式是什么? 以前确实也没有关注过这个计算公式,所以查了下学习了下: 下面是参考内容. 在做db基准测试的时候,qps,tps 是衡量数 ...
- 【MySQL】计算 TPS,QPS 的方式
在做db基准测试的时候,qps,tps 是衡量数据库性能的关键指标.本文比较了网上的两种计算方式.先来了解一下相关概念. 概念介绍: QPS:Queries Per Second 查 ...
随机推荐
- JAVA基础学习_命名规范和注释
一.命名规范 1. 项目名全部小写 2. 包名统一使用小写,点分隔符之间有且仅有一个自然语义的英语单词,包名统一使用单数形式.如果类名有复数含义,类名可以使用复数形式. 实际应用中: 各层命名规约: ...
- AS3.0 位图(BMP)解析类
/** * *-----------------------------* * | *** BMP格式解析类 *** | * *-----------------------------* * * 编 ...
- Manjaro 使用基础
一.pacman/yay 的基础命令 Manjaro 装好后,需要运行的第一条命令: sudo pacman -Syy ## 强制更新包数据 sudo pacman-mirrors --interac ...
- my linux cmd
常用的linux命令 一.vi yy 复制当前行 u 撤销 p 粘贴 dd 删除当前行 set nu 显示行号 gg 首行 G 末行 二.用户管理相关 useradd 添加用户 (默认创建一个与用 ...
- Unity_如何判断应用设备内存小于1G(内容可定制为根据机器配置进行不同LOD)
直接上脚本,需要用的时候在需要的地方调用就好. 如: //获取设别的最大内存,作为判断LOD等级和决定1G以下设备不能进游戏 #if UNITY_ANDROID && !UNITY_E ...
- SQL根据指定节点ID获取所有父级节点和子级节点(转载)
--根据指定节点ID获取所有子节点-- WITH TEMP AS ( ' --表的主键ID UNION ALL SELECT T0.* FROM TEMP,table_name T0 WHERE TE ...
- C++报错:error C3874
解决: 1.class 定义之后不要忘记分号 2.主函数写为int main() { }
- Mybatis之collection与association标签
collection与association标签的功能就是为了解决查询条件映射到一个类或一个集合上,适用于对于多对一,一对多的映射结果,现在我们就探究其具体使用吧. 环境搭建: 数据库搭建 CREAT ...
- Html CSS transform matrix3d 3D转场特效
Html CSS transform matrix3d 3D转场特效 透视矩阵 2n/(r-l) 0 (r+l)/(r-l) 0 0 2n/(t-b) (t+b)/(t-b) 0 0 0 (n+f)/ ...
- ES6-promise实现异步请求
一.Promise是什么 简单说就是一个容器,里面保存着某个未来才会结束的事件(通常是一个异步操作)的结果. ES6规定,Promise对象是一个构造函数,用来生成Promise实例.Promise构 ...