[为 1Mbps 正名] 单日 15 万 PV 证明 1Mbps 对小网站来说完全够用

2019-10-23 04:24:53 +08:00
 eason1874
一个网站,每天约 6 万 IP,15 万 PV,每 PV 包括 favicon.ico 在内约 10 个请求,每 PV 所有资源 Gzip 压缩后加在一起约 30KB~50KB (专门优化过页面资源)。

偶尔流量上升,所以常备 1~3 台 5M 机器以防万一,静态资源也放到了 CDN。但我还是有带宽焦虑症,因为 1M 算下来 125KB/s,一个页面 10KB 也就支持 10 个页面并发,5M 也就支持 50 个页面并发。这个网站就是普通网站,流量集中在上午、下午、晚上三个时间点,一百几十个人同时在线很常见。

平时我看控制台服务器监控的外网出入带宽总在 10KB/s 左右,高峰也很少超过 20KB/s,总怀疑是不是监控不准。

今天(现在凌晨,应该说是昨天了),我发现腾讯云副网卡绑定的弹性公网 IP 可以按流量计费,服务器主网卡带宽只有 1Mbps,副网卡申请的按流量计费的弹性公网 IP 最高却可以调到 200Mbps。

于是我手痒了,开了个 20Mbps 的 IP 绑定到副网卡来代替 CDN 工作,测试一天带宽峰值。这个是按量计费我相信统计肯定不会错。同时在云监控设置了告警,条件是一分钟内出带宽超过 1Mbps 就告警,结果一整天什么都没收到。

刚上后台看了看统计,平均峰值在 35KB/s,最高峰不到 80KB/s,一小时最多跑约 140M 流量,一天请求总共 50 万多点。账单计费已经经过精度调整了,肯定没错了。

依据这个数据来看,其实 1Mbps 带宽的 125KB/s 速率就已经可以满足单日 15 万 30KB~50KB 的 PV,甚至有很多富裕。

这个网站页面资源是比较少的,一个页面资源总量相当于常见网页 HTML 大小,但一般网站也会把静态资源放到 CDN,这样算下来常见网页也是 30KB~50KB / PV。

比如 V 站首页 15KB,回复比较多的帖子 30KB,按 30KB 来算,粗略估计 1Mbps 可以满足 V 站用户每天摸鱼看帖 20 万~30 万次。

所以说,正经做网站 1Mbps 不算小水管了,多数情况下这个量级的 PV 访问还没把带宽占满 MySQL 之类的进程就先宕机了,我也是把页面静态化才能在 1 核 1G 的机器上扛得住 10 万 PV,不然 MySQL 进程一天至少被挤掉一次。
20382 次点击
所在节点    云计算
167 条回复
eason1874
2019-10-23 16:36:46 +08:00
@BOOM #94 机器不同地域的,买的时候就是奔着容灾去的,所以不买一个地域的。快到 25 岁了,要超过购买学生机的年龄,最近确实有想法购买学生版云数据库,一个月 3 元,接近白嫖,不过如果买来没有业务用上的话我浑身不舒服,我还是得先找好用途再好,哈哈哈
myqoo
2019-10-23 16:37:15 +08:00
都 9102 年了为什么还用 gzip,而且带宽这么苛刻的场合下更应该用 br 啊
dongcxcx
2019-10-23 17:45:13 +08:00
@laminux29 那什么才叫集中,不如您下个定义
eason1874
2019-10-23 18:14:01 +08:00
@heiheidewo #98 手上有 5M 的机器,两台,是阿里云的学生机,备着随时顶上。之前有带宽焦虑症,总觉得 10M 也不够用,今天发现 1M 有多了,哈哈哈哈。

@Rwing #99 实话跟你说,能赚钱的网站项目一般人不会跟你分享的,会分享的只有两种,一种是有技术壁垒的说了也不怕你抄,另一种是骗子为了骗你买教程买代码编出来的假项目。
eason1874
2019-10-23 18:16:15 +08:00
@myqoo #102 br 不太了解,印象中好像支持的浏览器不多,有空了解下,可以上就上。
vtwoextb
2019-10-23 18:22:06 +08:00
学习了
yuxizhe
2019-10-23 18:42:42 +08:00
我改成按流量计费后 改不回来了
laminux29
2019-10-23 18:48:43 +08:00
@eason1874 噗,一个做小黄网的小屁孩,居然还说别人没见过世面,哪来的勇气。
eason1874
2019-10-23 19:03:16 +08:00
@laminux29 #108 那么,请见过世面的你告诉 V 站各位,什么黄网单个 PV 所有资源加在一起在 30KB~50KB 之间的。
eason1874
2019-10-23 19:04:51 +08:00
@yuxizhe #107 腾讯云可以切换两次,但是从按流量计费切回固定带宽要给按带宽付费,1M 一年的价格就超过一台促销机型了。
046569
2019-10-23 19:26:01 +08:00
LZ 提出了一个好问题,但是这个方案其实适用范围比较窄,有以下原因:

1. 网站必须是访客重复访问频次高,设置的资源缓存时间长且命中率高的类型.若是新访客多的网站由于缓存失效会导致打开速度明显变慢.
从 LZ 的表述中也可以看出:"V 站首页 15KB" ,这个说法是片面的.我使用了 Chrome 开发者工具验证,模拟 1M 小水管新访客大概需要 13 秒.这个时间恐怕新访客早关闭了.



2. 网站访问分布均匀.没有突发流量的情况.

3. 网站无竞争对手攻击,甚至访客的强制刷新就能分分钟让网站慢如龟爬.

4. 服务商带宽计算会削峰填谷,流控软件也并不是实时的,导致即便是 1M 其实突发速率也是超过这个水平的.

5. 小水管 + CDN 可以应付一定的流量,性价比较高,但健壮性不够,所以企业应用不多.

暂时先说这些,哄娃去...
eason1874
2019-10-23 19:57:54 +08:00
@046569 #111 你误解了,我说的 15KB 是指 Doc,就是网页本身,并不包静态资源。我在前一句说明了:一般网站也会把静态资源放到 CDN,这样算下来常见网页也是 30KB~50KB / PV。

我是说 1Mbps 完全足够小网站日常够用,是不包括特殊情况的。才 1Mbps 我们不可能指望它有容灾能力啊,满足日常使用就已经很不错了,还要什么自行车呢。

至于你说的 CDN 命中率问题,我有个特别的处理方法,当然也是省钱不省心。这个方法我多次提到了,想提供文件资源给公网访问,但又不想占用服务器带宽,可以先通过内网推到对象存储,再由对象存储或者绑定对象存储的 CDN 提供访问。

不主动推也可以在对象存储开启镜像功能,每次文件变动都给路径加一个 hash 值,这样只要访问路径是对的,CDN 从对象存储获取的时候对象存储就会主动从服务器获取并保存,一次获取长期保存,没有命中率问题。
yinaw
2019-10-23 20:48:03 +08:00
@eason1874 我的站点服务器是最便宜的套路云 T5,1 核 2G1M,cpu 只有 10%的基线性能,目前网站日独立 ip12000,打开速度也很快,因为我把图片都放在外站图床上,想知道您目前用的什么广告联盟,介绍一下,我一天能赚个二十块钱零花钱就够了…
MiaRunis
2019-10-23 21:02:54 +08:00
@eason1874 您方便说下是什么广告联盟吗?百度的几乎都没有收入了
lscho
2019-10-23 21:37:01 +08:00
你这就很逗了。。。资源都放到 cdn 了还提带宽有意义吗。。。。前后端分离的,用 webpack 打包一下都扔 cdn,50 万 pv 也不成问题。

然而并没有什么意义。
laminux29
2019-10-23 21:43:47 +08:00
@eason1874 那数字还不随你编。
046569
2019-10-23 22:55:37 +08:00
@eason1874
其实你对静态资源的"特别"的处理方法,很久以前就有现成的轮子了.
2012 年在 Ruby on Rails 中的雏形称作 Asset Pipeline .后来从框架独立出来叫 sprockets-rails .而动静态分离部署追溯历史就更早了.
大家吐槽你的点集中在你没有把 CDN 的带宽计算进去.如同拳击比赛,你不但用拳套,还准备了重火力( CDN ).
XxxxD
2019-10-24 02:24:01 +08:00
@eason1874 小白不太懂,是发了之后会有人 ddos 这样么?楼主分享的初衷感觉很棒,希望网站发展越来越好
eason1874
2019-10-24 04:52:35 +08:00
@yinaw #113
@MiaRunis #114

就是 Adsense 和一些小的主机商的推介计划,挂广告就有收入,但是广告位置和广告内容的不同能导致你的收入有二三十倍差异,需要定期跟踪广告效果并调整来提高转化率。

举个例子,yinaw 你网站有 12000 IP,一般来说你随便在标题下或者内容中间挂个 Adsense 每天收入别说 20 块了,200 块都不止。如果你挂了但没有那你首先要跟踪展示情况,因为不同用户群体有不同特点,比如 V 站用户大多在用 ublock 这种插件屏蔽广告,展示率就比一般网站要低,这样就要考虑引入其他类型的广告。如果 Adsense 展示量没问题但是收益还是低,那么就要优化转化,比如定期或者定量调整广告位置测试用户对不同位置的敏感度。
eason1874
2019-10-24 04:56:23 +08:00
@yinaw #113 对了,如果你不能确定你的用户 IP 来源真实,你还要先排查确定真实用户的大概数量。因为有一些小白和骗资金的项目会给他们网站刷流量,如果他们网站有你链接就会导致有一批假用户跟着链接流入你的网站,这种假用户是模拟浏览器访问,所以在 JS 统计中也能体现出来,往往广告他们也可以加载出来,但是不会有转化的,如果点了广告反而可能导致你的广告联盟被封。如果抓到这种假流量可以拒绝访问,或者根据特征不加载广告。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/611931

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX