今天在看系统设计的面经,这个 28 法则是啥意思?网上搜到的感觉不太套的进去 原文如下:
按照 2/8 法则来推算 1000w 用户的访问量
继续回到最开始的问题,假设没有历史数据供我们参考,我们可以使用 2/8 法则来进行预估。
1000W 用户,每天来访问这个网站的用户占到 20%,也就是每天有 200W 用户来访问。
假设平均每个用户过来点击 50 次,那么总共的 PV=1 亿。
一天是 24 小时,根据 2/8 法则,每天大部分用户活跃的时间点集中在(24*0.2) 约等于 5 个小时以内,而大部分用户指的是( 1 亿点击 * 80%)约等于 8000W ( PV ), 意味着在 5 个小时以内,大概会有 8000W 点击进来,也就是每秒大约有 4500(8000W/5 小时)个请求。
4500 只是一个平均数字。在这 5 个小时中,不可能请求是非常平均的,有可能会存在大量的用户集中访问(比如像淘宝这样的网站,日访问峰值的时间点集中在下午 14:00 、以及晚上 21:00 ,其中 21:00 是一天中活跃的峰值),一般情况下访问峰值是平均访问请求的 3 倍到 4 倍左右(这个是经验值),我们按照 4 倍来计算。那么在这 5 个小时内有可能会出现每秒 18000 个请求的情况。也就是说,问题由原本的支撑 1000W 用户,变成了一个具体的问题,就是服务器端需要能够支撑每秒 18000 个请求( QPS=18000 )`
1
dumbbell5kg OP 网上说的是 “百分之 80 的财富 掌握在 20%的人手中”,这个可以套在访问量上面吗?难道是说“80%的访问量是 20%的人造成的”?
|
2
luckykong 239 天前
@dumbbell5kg #1 有可能,就像 V 站那么多用户,但天天来刷的,没太多。。
每天上来刷一下的,大部分人看下首页就跑了,少部分人会翻来翻去看每个节点。 回复消息的, 大部分人回复完就跑了,少部分人会待在这里,盯着消息提醒、跟人吵架 |
3
cdlnls 239 天前
估算就是需要很多其他的数据来作为估算的依据,不谈具体的业务场景没有数据来源的“估算”就是耍流氓。
有的场景就是上线后 100%的客户端一整天都在线,有的场景就是 80%的用户每天 9 点在线其他时间都不在,有的场景就是每年只有 1 个月 PV 暴增 10000 倍。没有什么统一的算法能衡量这个东西。 如果“估算方法”能量化的话,那么可以说用 20%的方法 可以解决 80%的系统估算问题。 |
4
fcten 239 天前
没有这样的法则,只能根据业务场景和历史数据具体分析。不同的业务峰值访问量会有巨大的差别。例如外卖 app ,在午饭和晚饭这两个时间点前后或许可以集中一天 90% 的流量。很明显按 5 小时估算是不够的。而对于即时通讯 app ,则是全天都有人活跃,可能按 8 小时估算都绰绰有余。
|