# PV/UV/PR/IP 网站分析指标


# Go Web 编程

## PV/UV/PR/IP 网站流量指标

* 网站数据分析, 经常会统计一个页面或者一个网站或者其他情况的 PV/UV/PR/IP 量。


### PV

* `PV (page view)`, 即页面浏览量, 或点击量。 通常是衡量一个网站，一个栏目，一个页面，甚至一条信息的主要指标。

  * 用户对一个页面进行一次访问, 刷新或者一次通过网址访问, 该页面的`PV` 就会计算为1。

  * 一般以日为单位来衡量和计算。

### UV

* `UV (unique visitor)`, 即独立访客数。 

  1. 访问某个站点或点击某个页面、某一条信息的不同访客人数。

  2. 一日内访问某个网站或者网页的不同用户数量。

  3. 同一个用户对一个网站或者一个页面的多次访问记为贡献一个`uv`。

  4. 一般以日为单位来衡量和计算。

### IP

* `IP(IPV4/IPV6)` 。

  1. 同一时段内有多少`IP`连接。

  2. 同一时间内 那些 `IP` 访问次数最多。


### PR

* `PR(PageRank)`, 即网页的级别技术, 表示一个网页的重要程度。

  * 级别从1到10级, 10级为满分。 PR值越高说明该网页越受用户喜爱。

### PV 与 并发

* 计算公式: 并发连接数 = (( 80% * PV ) / ( 统计时间 * 40% ) * 页面衍生连接次数 * http响应时间 * 因数 ) / web服务器数量

  1. 80% 与 40%:  一天中有80% 的请求发生在一天的40%的时间内 (这个按照实际情况而定)。

  2. 页面衍生连接次数:  一个页面请求, 会有好几次http连接, 如外部的css, js,图片等, 这个根据实际情况而定。

  3. http响应时间: 平均一个http请求的响应时间, 可以使用1秒或更少。

  4. 因数: 峰值流量 和平均流量的倍数, 一般使用 5 , 最好根据实际情况计算后得出。


* 例子:

  * 10万PV的并发连接数: (( 80% * 100000PV ) / ( 86400 秒 * 40% ) * 50个页面衍生连接数 * 1秒内响应 * 5倍峰值) / 1台Web服务器 = 578 并发连接数。
  
  * 如果我们能够测试出单机的`并发连接数`, 和 日 `pv` 数，那么我们也就大概估算出需要 web 的服务器数量。(服务器相同配置的情况下)


### PV 计算带宽

* 计算带宽大小需要关注两个指标: `峰值流量` 和 `页面平均大小`。

* 计算公式: 网站带宽 = PV / 统计时间（换算到秒(s)）* 平均页面大小（单位KB）* 8

  1. 字节的单位是Byte, 而带宽的单位是bit, 1Byte = 8bit, 所以转换为带宽的时候, 要乘以 8。

  2. 在实际运行中，由于缓存、CDN、白天夜里访问量不同等原因，这个是计算下的算法。

  3. 在实际的网站运行过程中, 我们的网站必须要在峰值流量时保持正常的访问, 一般来说峰值流量是平均流量的5倍。

* 举例:

  * 假设网站的平均日PV: 10w 的访问量, 页面平均大小0.4 M 。

  * 网站带宽 = 10w / （24 * 60 * 60）* 0.4M * 8 = 3.7 Mbps

  * 实际网站流量 计算流量 * 5倍 =  3.7 Mbps * 5 =  18.5Mbps




## 其他概念

### QPS

* QPS `( Queries Per Second )`  

  * 每秒处理的查询数（如果是数据库，就相当于读取）

### TPS

* TPS `( Transactions Per Second )` 

  *  每秒处理的事务数(如果是数据库，就相当于写入、修改)

### IOPS

* IOPS `( Input/Output Operations Per Second )`

  * 每秒磁盘进行的I/O操作次数

