基本概念

网站访问量的常用衡量标准:独立访客(UV) 和 综合浏览量(PV),一般以日为单位来计算。

独立访客(UV):指一定时间范围内相同访客多次访问网站,只计算为1个独立访客。

综合浏览量(PV):指一定时间范围内页面浏览量或点击量,用户每次刷新即被计算一次。


并发用户数:即指同时执行操作的用户(线程数)。

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

IOPS:即每秒磁盘进行的I/O操作次数。

QPS : 一台服务器(单进程)每秒能够相应的查询次数

QPS(每秒请求次数) = 总请求数 / ( 进程总数 * 请求时间 )

单台服务器每天PV计算

公式1:每天总PV = QPS * 3600 * 6 (6小时范围内)

公式2:每天总PV = QPS * 3600 * 8 (8小时范围内)

服务器数量计算

服务器数量 = ceil( 每天总PV / 单台服务器每天总PV )

ceil函数:返回大于或者等于指定表达式的最小整数

峰值QPS和机器计算公式

每台服务器每秒处理请求的数量 = ((80% * 总PV量)/(24小时60分60秒 * 40%)) / 服务器数量

原理: 每天80%的访问集中在40%的时间里,这40%时间叫做峰值时间。(很适合互联网的应用,白天请求多,晚上请求少)。

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

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

我们经过压力测试得到结论:

((80%500万)/(24小时60分60秒40%))/1 = 115.7个请求/秒

((80%100万)/(24小时60分60秒40%))/1 = 23.1个请求/秒

  • 如果你的服务器一秒能处理115.7个请求,就可以承受500万PV/每天。
  • 如果你的服务器一秒能处理23.1个请求,就可以承受100万PV/每天。

以上请求数量是均匀的分布在白天的9.6个小时中,但实际情况并不会这么均匀的分布,会有高峰有低谷。

为了应对高峰时段,应该留一些余地,最少也要x2倍,x3倍也不为过。(留足余量,应对突然事件)

  • 如果你的服务器一秒能处理231.4--347.1个请求/秒,就可以应对平均500万PV/每天。
  • 如果你的服务器一秒能处理46.2--69.3个请求,就可以应对平均100万PV/每天。

(说明:这里每秒N个请求,就是QPS。因为我关心的是应用程序处理业务的能力。)

问:每天300w PV 的在单台机器上,这台机器需要多少QPS?

答:( 3000000 * 0.8 ) / (86400 * 0.4 ) = 69 (QPS)

问:如果一台机器的QPS是58,需要几台机器来支持?

答:69 / 58 = 2

PV计算带宽

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

举个例子:

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

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

具体的计算公式: 网站带宽= PV / 统计时间(换算到S)* 平均页面大小(单位KB)* 8

在实际的网站运行过程中,我们的网站必须要在峰值流量时保持正常的访问,为了应对高峰时段,应该留一些余地,假设,峰值流量是平均流量的5倍,按照这个计算,实际需要的带宽大约在 3.7 Mbps * 5=18.5 Mbps

PS:

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

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

如何计算QPS、PV和需要部署机器数量?的更多相关文章

  1. QPS、PV和需要部署机器数量计算公式

    QPS:Queries Per Second意思是“每秒查询率”,是一台服务器每秒能够相应的查询次数,是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准. TPS是 Transactions ...

  2. QPS、PV和需要部署机器数量计算公式(转)

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

  3. [Z]QPS、PV和需要部署机器数量计算公式

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

  4. QPS/QPS/PV/UV/服务器数量/并发数/吐吞量/响应时间计算公式

    QPS:每秒查询率(Query Per Second) ,每秒的响应请求数,也即是最大吞吐能力.QPS = req/sec = 请求数/秒QPS统计方式 [一般使用 http_load 进行统计]QP ...

  5. 峰值QPS/QPS/PV/UV/服务器数量/并发数/吐吞量/响应时间计算公式

    QPS:每秒查询率(Query Per Second) ,每秒的响应请求数,也即是最大吞吐能力.QPS = req/sec = 请求数/秒QPS统计方式 [一般使用 http_load 进行统计]QP ...

  6. kafka项目经验之如何进行Kafka压力测试、如何计算Kafka分区数、如何确定Kaftka集群机器数量

    @ 目录 Kafka压测 Kafka Producer(生产)压力测试 Kafka Consumer(消费)压力测试 计算Kafka分区数 Kafka机器数量计算 Kafka压测 用Kafka官方自带 ...

  7. 什么是QPS,PV

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

  8. 并发数/QPS/PV/ 服务器响应时间公示

    QPS:每秒查询率(Query Per Second) ,每秒的响应请求数,也即是最大吞吐能力.QPS = req/sec = 请求数/秒QPS统计方式 [一般使用 http_load 进行统计]QP ...

  9. cobbler部署机器的默认密码

    修改cobbler的默认密码: 用 openssl 生成一串密码后加入到 cobbler 的配置文件(/etc/cobbler/settings)里,替换 default_password_crypt ...

  10. 透过源码看看Redis中如何计算QPS

    通常我们采集Redis的性能数据时,或者想要知道Redis当前的性能如何时,需要知道这个实例的QPS数据,那么这个QPS数据是如何计算的呢?我们都有哪些办法或者这个QPS ? QPS顾名思义就是每秒执 ...

随机推荐

  1. JavaScript实现全选选项框的功能和鼠标划入出现下拉框的功能--JavaScript实例集锦(初学)

    有一些论坛,文章后台编辑都会出现选择框的操作. 1.实现选项框全选和取消全选的功能: 代码实现: <!DOCTYPE html> <html> <head> < ...

  2. RemoteView 替代品和类似软件

    RemoteView 是一款远程控制软件,使您可以通过Internet连接远程访问计算机和移动设备,而不受时间和地点的限制. 您可以快速,安全地实时轻松地控制计算机和移动设备. 您可以使用我们的iOS ...

  3. C语言:ACLLIB图形库——如何搭建环境(附三个文件代码)

    看一下我配置完的运行结果: 1)首先创建一个项目. 2)选择win项目和C语言 3)然后找到你保存项目的文件夹里面拷贝两个.c和.h文件,两个文件代码我附在最后. 4)现在还不能用,找到项目属性 5) ...

  4. windows下使用winget快速安装nvm

    前置条件: 操作系统 >= win10 安装 首先使用winget搜索nvm包 winget search nvm #搜索结果如下图 安装nvm winget install CoreyButl ...

  5. acedCommand 之使用镜像命令

    ads_name ent; ads_point pt2, pt3; if (acedSSGet(NULL, NULL, NULL, NULL, ent) != RTNORM) { return; } ...

  6. Linux命令行优化,历史记录优化

    #命令行优化: echo "export PS1='\[\033[01;31m\]\u\[\033[00m\]@\[\033[01;32m\]\h\[\033[00m\][\[\033[01 ...

  7. MySQL配置主从同步过程记录

    今天由于工作需要,配置了一下主从同步,这里记录一下配置过程,以备查阅. 事先度娘了一番,主从同步需要保证主从服务器MySQL版本一致(我的略有差别,主服务器版本5.5.31,从服务器版本5.5.19) ...

  8. LLM 大模型学习必知必会系列(十二):VLLM性能飞跃部署实践:从推理加速到高效部署的全方位优化[更多内容:XInference/FastChat等框架]

    LLM 大模型学习必知必会系列(十二):VLLM性能飞跃部署实践:从推理加速到高效部署的全方位优化[更多内容:XInference/FastChat等框架] 训练后的模型会用于推理或者部署.推理即使用 ...

  9. 【VMware vSphere】使用vSphere Lifecycle Manager(vLCM)管理独立主机和集群的生命周期。

    vSphere Lifecycle Manager(vLCM)是 vSphere 7 中引入的一项新功能,它提供了一种集中式.自动化和简单性的方式来管理和升级 vSphere 基础架构组件(如vCen ...

  10. 《利用python进行数据分析》笔记章节索引

    本文章作为我的一系列关于<利用python进行数据分析>的笔记的文章的索引.分为四部分. 第一部分:numpy基础,共六节: numpy基础--ndarray(一种多维数组对象):http ...