[为 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 进程一天至少被挤掉一次。
20307 次点击
所在节点    云计算
167 条回复
eason1874
2019-10-23 08:59:59 +08:00
@guisheng #18 1M 的都没备案,用不起来了,IP 访问当后端也可能被屏蔽访问。

都是 2c4g 的话,流量不大的情况下一台跑 WordPress 就可以了。流量大了不够用就把另一台也接入备案,DNS 负载均衡,或者用一台跑后台一台跑前端(前提是瓶颈在计算,而不是带宽)。

主题里引用谷歌字体和国外资源的问题,总共也不会有多少,你手动保存到本地,改成你的网址就行了。
markgor
2019-10-23 09:07:05 +08:00
1M + CDN = 15 万 PV
20M = 15 万 PV
LZ 的意思是 20M = 1M 嗎?
markgor
2019-10-23 09:12:14 +08:00
剛以為自己看錯了,
以為你說的是 1M+CDN 滿足需求。
但是看看標題,你說的是為 1M 正名。
你可以試試不上 CDN 的時候情況如果,上了 CDN 為 1M 正名這不有點扯嗎....
你的 1M 只是回源帶寬 1M,別人訪問有緩存走緩存,沒緩存去 CDN,非靜態資源跑會源站。
但是你上面又說了都是靜態資源,那不就等於除了第一次訪問 CDN 需要回源,後續的 CDN 基本不會回源嗎?
eason1874
2019-10-23 09:15:29 +08:00
@markgor 不是这样子,你理解错了。

静态资源我开了最高 20M,但是实际最高才跑到~0.65M ,平均值~0.25M ,总共请求~50 万。

15 万 PV 指网页的,与静态资源无关,网页平均值也是~0.25M ,与静态资源加起来不到 0.6M ,可不就是不到 1M 吗?
eason1874
2019-10-23 09:21:30 +08:00
@markgor #23 不都是静态资源,页面虽然 HTML 静态化,但我还是把 HTML 跟其他静态资源区分的。像我上一条回复说的,HTML 这边出带宽平均值~0.25M ,其他静态资源也是~0.25M ,加起来不到 1M。
markgor
2019-10-23 09:24:05 +08:00
@eason1874 HTML 不就是靜態嗎...?
chuhemiao
2019-10-23 09:24:53 +08:00
不提交数据 1m 还可以 都是静态加上 cdn 足够用了
guisheng
2019-10-23 09:26:31 +08:00
@eason1874 好吧 感觉目前访问比较慢 目前没人访问。我还在考虑要不要+600 元升级 带宽为 5m 呢 毕竟目前有个 1500 -1000 的优惠卷
eason1874
2019-10-23 09:26:34 +08:00
@markgor #26 HTML 是静态文件没错,但是我没有缓存到 CDN 上面,跟动态请求一样是走服务器带宽的
eason1874
2019-10-23 09:30:33 +08:00
@chuhemiao #27 一般用户交互也不怕,云服务器入带宽都不低,比如腾讯云最低入带宽是 10Mbps

@guisheng #28 不用考虑了,静态资源走 CDN 按量计费,什么时候有 30 PV+ 了再考虑升级带宽,毕竟带宽是很贵的。
markgor
2019-10-23 09:32:11 +08:00
@eason1874 #29
我試過的 1M 機器不走 CDN 情況下和 2L 所說的一樣。
不過可能你把所有資源打包一起 50KB 的原因吧。(這個真厲害,我這 JS 那堆文件加起來就不止了,上別人的 cdn 怕不穩定)
另外好奇你那站點一張圖片都沒有嘛?還是都丟 CDN 去了?
LeBron23
2019-10-23 09:36:38 +08:00
从来不觉得 1M 的是小水管,七牛又拍猫云,这么多能薅羊毛的 cdn 不香嘛
malusama
2019-10-23 09:39:31 +08:00
能上 CDN 那 1M 差不多就一个 api 获取数据的也够,但是上国内的 CDN 域名得备案。
moe 后缀的域名就不支持备案,很恶心
eason1874
2019-10-23 09:49:23 +08:00
@markgor #31 文字为主,图片很少,有图片也会进行压缩处理。我的静态资源少主要是因为全部手写,如果引入第三方模块的话,一个 Bootstrap CSS 文件大小就相当于我整个页面了。

按现在流行的做法,一个页面的静态资源随随便便超过 1MB,不上 CDN 是不行的。
eason1874
2019-10-23 09:52:57 +08:00
@LeBron23 #32 香啊,腾讯云每次活动我都领券买流量包,折合 0.09/GB,这次双 11 也领了,真香。

@malusama #33 搞个可以备案的后缀的域名专门用来放静态资源呗,反正用户又看不到域名。
zhjits
2019-10-23 09:53:00 +08:00
你得区分一下是限制死的 1Mbps,还是平均 1Mbps + burst 5Mbps (举个例子),还是 95% 1Mbps。虽然你可能一天的总流量不超过 1Mbps*1day,但是突发速率很可能会在某些时候超过 1Mbps。这个时候如果你是限制死的 1Mbps 没有 burst,你的网站访问延迟会增加。(用户总能加载出来,但是需要等。)

对于单请求本来就小的网站,带宽确实没那么重要。举个例子,我们有个网站峰值 PV 是 4k/s 左右,单个请求不到 1KB,勉强跑满 5Mbps 的带宽。
netherlanddennis
2019-10-23 09:56:47 +08:00
即将一大波杠精来袭。楼主顶住~~
eason1874
2019-10-23 10:00:28 +08:00
@zhjits #36 这个我不清楚。我这连 1Mbps 都没跑满过,没机会体验有没有限死。就 SFTP 来看是限得很死的,凌晨传了一个近 200MB 的日志文件,始终没有超过 128KB/s。

你说的延迟我知道是什么,Nginx 的频率限制可以配置超过限制之后让用户等待响应还是直接返回拒绝,情况类似。
TomVista
2019-10-23 10:01:04 +08:00
你们写的网页真小.....,我的体积爆炸
eason1874
2019-10-23 10:03:27 +08:00
@netherlanddennis #37 哈哈哈,有经验的欢迎来杠啊,我一直探寻有什么更低成本的方法处理更多的网页请求,手里机器不是学生机就是促销活动最低配置机型,V 站里老有人说买了 2c4G5M 的机型,感觉 V 站用户像我这么抠的不多,哈哈哈

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

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

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

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

© 2021 V2EX