如何计算QPS、PV和需要部署机器数量?
基本概念
网站访问量的常用衡量标准:独立访客(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和需要部署机器数量?的更多相关文章
- QPS、PV和需要部署机器数量计算公式
QPS:Queries Per Second意思是“每秒查询率”,是一台服务器每秒能够相应的查询次数,是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准. TPS是 Transactions ...
- QPS、PV和需要部署机器数量计算公式(转)
术语说明: QPS = req/sec = 请求数/秒 [QPS计算PV和机器的方式] QPS统计方式 [一般使用 http_load 进行统计] QPS = 总请求数 / ( 进程总数 * 请求 ...
- [Z]QPS、PV和需要部署机器数量计算公式
QPS = req/sec = 请求数/秒 [QPS计算PV和机器的方式] QPS统计方式 [一般使用 http_load 进行统计]QPS = 总请求数 / ( 进程总数 * 请求时间 )QPS ...
- QPS/QPS/PV/UV/服务器数量/并发数/吐吞量/响应时间计算公式
QPS:每秒查询率(Query Per Second) ,每秒的响应请求数,也即是最大吞吐能力.QPS = req/sec = 请求数/秒QPS统计方式 [一般使用 http_load 进行统计]QP ...
- 峰值QPS/QPS/PV/UV/服务器数量/并发数/吐吞量/响应时间计算公式
QPS:每秒查询率(Query Per Second) ,每秒的响应请求数,也即是最大吞吐能力.QPS = req/sec = 请求数/秒QPS统计方式 [一般使用 http_load 进行统计]QP ...
- kafka项目经验之如何进行Kafka压力测试、如何计算Kafka分区数、如何确定Kaftka集群机器数量
@ 目录 Kafka压测 Kafka Producer(生产)压力测试 Kafka Consumer(消费)压力测试 计算Kafka分区数 Kafka机器数量计算 Kafka压测 用Kafka官方自带 ...
- 什么是QPS,PV
术语说明: QPS = req/sec = 请求数/秒 [QPS计算PV和机器的方式] QPS统计方式 [一般使用 http_load 进行统计] QPS = 总请求数 / ( 进程总数 * 请求时间 ...
- 并发数/QPS/PV/ 服务器响应时间公示
QPS:每秒查询率(Query Per Second) ,每秒的响应请求数,也即是最大吞吐能力.QPS = req/sec = 请求数/秒QPS统计方式 [一般使用 http_load 进行统计]QP ...
- cobbler部署机器的默认密码
修改cobbler的默认密码: 用 openssl 生成一串密码后加入到 cobbler 的配置文件(/etc/cobbler/settings)里,替换 default_password_crypt ...
- 透过源码看看Redis中如何计算QPS
通常我们采集Redis的性能数据时,或者想要知道Redis当前的性能如何时,需要知道这个实例的QPS数据,那么这个QPS数据是如何计算的呢?我们都有哪些办法或者这个QPS ? QPS顾名思义就是每秒执 ...
随机推荐
- python教程6.3-time模块datetime模块
由于time是基于Unix Timestamp,所以其所能表述的日期范围被限定在 1970 – 2038 之间.因此2038年后就不能用time了,建议使用datetime. time模块 有下面几 ...
- 4G EPS 中的 Bearer
目录 文章目录 目录 前文列表 承载的内涵 EPS Bearer QoS QoS 的关键参数 APR GBR.MBR AMBR UE 是如何选择 EPS Bearer 的? E-RAB Radio B ...
- Pytorch:利用torch.nn.Modules.parameters修改模型参数
1. 关于parameters()方法 Pytorch中继承了torch.nn.Module的模型类具有named_parameters()/parameters()方法,这两个方法都会返回一个用于迭 ...
- layui表格内可编辑下拉框
表格内可编辑下拉框扩展自别人的表格内下拉框 一.列模板,这是列配置的templet字段需要使用的. 1.inputdiv,输入框覆盖在下拉框上面左半部.这个样式用来调整输入框和下拉框不会超出单元格. ...
- pod(三):pod的管理
目录 一.系统环境 二.前言 三.pod的管理 3.1 环境介绍 3.2 管理pod 一.系统环境 服务器版本 docker软件版本 CPU架构 CentOS Linux release 7.4.17 ...
- Git 出现 Permission denied 时,重新生成ssh密钥
1,右键本地仓库,点击 [ Git Bash Here] 出现如下对话框: 输入 ssh-keygen 然后一直回车,注意: 保存的SSH目录 在 C:\Users\xiaocj\.ssh ...
- CSS 溢出文本
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- Geatpy学习笔记1:官方案例
一.入门 1.求解器模式入门 案例 1 import geatpy as ea import numpy as np # 构建问题 r = 1 # 目标函数需要用到的额外数据 @ea.Problem. ...
- NOIP模拟75
前言 先吐槽一下出题人,T2 牛马数据连棵树都不是.. T3 描述不清楚.. T1 如何优雅的送分 解题思路 我考场上还真以为是个送分题,然而... 莫比乌斯反演... 对于一个数字 n 有 \(2^ ...
- JavaSE的运算符
[Top] 算术运算 分类 运算符 算数运算符 * / + - % ++ -- 赋值运算符 +=, -=, /=, *=, %=(扩展赋值运算符), = 比较(关系)运算符 == != > &l ...