名词解释

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 还有提升的空间。

性能优化的过程

  1. 发现短板。
  2. 减少数据。事实上,有两个地方特别影响性能。一是服务端在处理数据时不可避免地存在字符到字节的相互转化,二是 HTTP 请求时要做 Gzip 压缩,还有网络传输的耗时,这些都和数据大小密切相关。
  3. 数据分级。首屏数据、重要信息优先,次级信息异步加载。
  4. 减少中间环节。

附:性能测试指标

并发 响应时间 应用服务器cpu 数据库服务器cpu TPS
50 1s 50% 20% 50

参考资料

作者:youthcity
链接:https://www.jianshu.com/p/f38b3876f522
来源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

PV UV TPS QPS的更多相关文章

  1. 关于IT术语---ip、uv、pv、tps、qps、rps

    涉及到IT方面的几条术语,这里要好好说道说道: 只要和网站打交道,难免会经常听到一系列的转有名词  >>>  系统今日UV多少.PV多少.QPS多少之类的问题.这里就对这些常见的术语 ...

  2. PV、TPS、QPS计算公式(转)

    英文解释: PV=page viewTPS=transactions per secondQPS=queries per secondRPS=requests per second RPS=并发数/平 ...

  3. 转 PV、TPS、QPS 计算方法

    PV.TPS.QPS是怎么计算出来的?   QPS = req/sec = 请求数/秒 [QPS计算PV和机器的方式] QPS统计方式 [一般使用 http_load 进行统计]QPS = 总请求数 ...

  4. PV、TPS、QPS是怎么计算出来的?

    PV=page viewTPS=transactions per secondQPS=queries per secondRPS=requests per second RPS=并发数/平均响应时间 ...

  5. PV、TPS、QPS是怎么计算出来的?(转载的)

    QPS = req/sec = 请求数/秒 [QPS计算PV和机器的方式] QPS统计方式 [一般使用 http_load 进行统计] QPS = 总请求数 / ( 进程总数 * 请求时间 ) QPS ...

  6. 有关“数据统计”的一些概念 -- PV UV VV IP跳出率等

    有关"数据统计"的一些概念 -- PV UV VV IP跳出率等 版权声明:本文为博主原创文章,未经博主允许不得转载. 此文是本人工作中碰到的,随时记下来的零散概念,特此整理一下. ...

  7. 日志分析_统计每日各时段的的PV,UV

    第一步: 需求分析 需要哪些字段(时间:每一天,各个时段,id,url,guid,tracTime) 需要分区为天/时 PV(统计记录数) UV(guid去重) 第二步: 实施步骤 建Hive表,表列 ...

  8. mysql中TPS, QPS 的计算方式

    今天突然有个同事问题一个问题, mysqlTPS和QPS的计算公式是什么? 以前确实也没有关注过这个计算公式,所以查了下学习了下: 下面是参考内容.  在做db基准测试的时候,qps,tps 是衡量数 ...

  9. 【MySQL】计算 TPS,QPS 的方式

     在做db基准测试的时候,qps,tps 是衡量数据库性能的关键指标.本文比较了网上的两种计算方式.先来了解一下相关概念. 概念介绍: QPS:Queries Per Second         查 ...

随机推荐

  1. find_element_by_xpath()的几种方法

    Xpath (XML Path Language),是W3C定义的用来在XML文档中选择节点的语言一:从根目录/开始有点像Linux的文件查看,/代表根目录,一级一级的查找,直接子节点,相当于css_ ...

  2. 简单的鼠标操作<一个填充格子的小游戏>

    #include "graphics.h" #include "conio.h" void main(){ // 初始化界面 initgraph(, ); ; ...

  3. PAT(B) 1044 火星数字(Java)进制转换

    题目链接:1044 火星数字 (20 point(s)) 题目描述 火星人是以 13 进制计数的: 地球人的 0 被火星人称为 tret. 地球人数字 1 到 12 的火星文分别为:jan, feb, ...

  4. JVM内存管理(一)--GC简介

    GC策略解决了哪些问题?  既然是要进行自动GC,那必然会有相应的策略,而这些策略解决了哪些问题呢,粗略的来说,主要有以下几点.         1.哪些对象可以被回收.         2.何时回收 ...

  5. 面试题目<转载>

    1:检测一个变量是否有设置的函数是否?是否为空的函数是?(2分)        2:echo(),print(),print_r()的区别(3分)        3:表单中 get与post提交方法的 ...

  6. 怎样获取全局对象 window

    1. 使用window.self window.self === window; // true 2. 使用window.window window.window === window; // tru ...

  7. POJ 3233-Matrix Power Series( S = A + A^2 + A^3 + … + A^k 矩阵快速幂取模)

    Matrix Power Series Time Limit: 3000MS   Memory Limit: 131072K Total Submissions: 20309   Accepted:  ...

  8. Effective Java 读书笔记(五):Lambda和Stream

    1 Lamdba优于匿名内部类 (1)DEMO1 匿名内部类:过时 Collections.sort(words, new Comparator<String>() { public in ...

  9. wstngfw中配置freeradius

    wstngfw中配置freeradius Radius为各种网络设备和服务提供了一个认证来源. Radius认证常用于***.入网门户.交换机.路由器和防火墙.Radius认证比在网络上的不同设备跟踪 ...

  10. webstrom设置语句中的分号

    webstrom可以设置语句默认是否添加分号 setting >editor > Code Style > Javascript