带宽 VS CDN (转载)
并发的影响因素:带宽、web server(含php)、static server、数据库
带宽价格:
| 静态IP企业宽带 | 5M | 10M | 50M | 100M | 200M |
| 盛大云 华东双线 | 216/月 | 396 | 1836 | 3636 | 7236 |
| 盛大云 华北BGP | 318 | 618 | 3018 | 6018 | 12018 |
| 阿里云 BGP | 100/兆/月 | 5k | 1w | 2w | |
| Amazon EC2 流量计费 | $3313 | ||||
| idcexpert.cn | 1.5w | 10w | |||
| linkcloud.cn 双线 也可流量计费 | 168 | 480 | 3300 | 6600 |
CDN(云分发)价格:
| 50TB/月 | 100TB/月 | |
| 阿里云 | 3.8w/月 | 6.9w/月 |
| 盛大云 | 9k/月 | 1.7w/月 |
| 网宿 | ||
| 蓝汛 |
普通web服务的并发和带宽的计算方式:
参考网宿科技●中国互联网发展报告(2012年第二季度) ,80%的流量集中在8点至23点,即15个小时,最大访问量约为平均值的1.7倍,如下图:

计算方式:
平均并发 = PV / (24小时 * 3600秒 );
热门并发 = PV * 80% / (15小时 * 3600秒 );
最大并发 = 平均并发 * 1.7;
html的head中所有css放在前面,然后是交互依赖的重要js,浏览器下载html的head部分,解析出css和js的链接,开始并行下载css和js,同时继续下载html的body部分(js会阻塞之后的下载,但之前的不受影响)。由于html已经下载一部分了,一旦css和js下载完成,即开始渲染,显示出一部分。

TTI(time to interact)用户等待页面的时间 受到 html下载、CSS下载、JS下载的影响。
0.1秒:用户感觉他们动作的效果是立即发生的
1秒:网页必须在1秒内显示出来,用户才会觉得自己在自由地浏览,如果慢于这个时间,他们会觉得计算机对自己的浏览造成阻碍。
3秒:用户觉得白屏时间太长,可能会跑到竞争对手那里去。
10秒:用户的情绪将达到极限,内心将开始产生疑惑,超过10秒,用户往往会离开网站。
所以最好做到1秒之内显示,让用户感到流畅,进而吸引更多的用户。如果不能做到1秒,那一定要做到3秒以内。
按照热门并发购买带宽比较节约成本,可保证大部分用户在1秒内显示。但是当达到最高峰时,就需要排队了。
为了让最高峰时用户量仍然感觉流畅,而且用户量逐渐增长,带宽应留有余量,按照热门并发的1.5倍到2倍购买带宽较好。
上线后根据实际流量,决定是否需要增加带宽。
动态服务器:html一般为10K到几十K,实现1秒内返回html,需要的带宽成本小。
静态服务器:图片等文件较大,如果达到1秒内返回带宽成本高,可实现3秒内返回。流量不大时,带宽比CDN便宜。如果流量大时,带宽成本高,使用第三方CDN服务反而便宜。
比如1000w PV:
平均并发 = 1000w / (24小时 * 3600秒 )= 115个/s;
热门并发 = 1000w * 80% / (15小时 * 3600秒 ) = 148个/s;
最大并发 = 平均并发 * 1.7 = 195个/s;
动态服务器带宽:假设每个HTML页面20K(项目开发时自测),热门并发148,需要带宽 20K * 148 = 2.96 MB/s = 24 Mbps
静态服务器带宽:css(假设40K)、重要js(假设50K),需要带宽 90K * 148 = 13.3 MB/s = 106 Mbps
css和js只需要请求一次,以后都被缓存了。所以静态服务器的主要功能是图片。
图片的体积很大,假设每页2个图片各100K,由于图片是并发的,所以静态服务器的并发是148 * 2 = 296。
如保证1秒响应,需要带宽 100K * 2 * 148 = 29.6 MB/s = 236 Mbps,如果使用盛大云华东双线,则费用为¥9k/月。这时可以考虑使用CDN,价格一样,但距离用户更近,速度更快。
如保证3秒响应,需要带宽 80Mbps。
小米论坛:PV 2000w,热门并发300。页面20K,其余是图片等静态资源,每张图片约300K(因为未压缩),无图的帖子约70K,有图的帖子从500K到3M或更大。平均每个页面约2张图片。
动态服务器最小带宽:20K * 300 = 6M/s = 48 Mbps(实际动态静态合计购买了800M),
静态服务器最小带宽:300K * 2 * 300 = 180 M/s = 1440 Mbps,如果保证1秒响应,带宽费用为¥8.7w/月,不如用CDN(实际使用了CDN)。
糗事百科:PV预计1000w,热门并发150。图片较少,每页90至400k。其中页面10K,其余是图片等静态资源,每张图70K,平均每个页面4张图。
动态服务器带宽:10K * 150 = 1.5 M/s = 12 Mbps,
静态服务器带宽:70K * 4 * 150 = 42M/s = 336 Mbps

参考资料:
http://cdc.tencent.com/?p=1685
带宽 VS CDN (转载)的更多相关文章
- CDN加速静态文件访问
CDN加速静态文件访问 全局调度 缓存技术 内容分发 带宽优化 CDN是Content Delivery Network的缩写,意思是内容分发网络.CDN的作用是把用户需要的内容分发到离用户近的地方, ...
- CDN 工作原理剖析
CDN 工作原理剖析 CDN / Content Delivery Network / 内容分发网络 https://www.cloudflare.com/zh-cn/learning/cdn/wha ...
- 为七牛云存储开发的PHP PEAR 包:Services_Qiniu
七牛云存储Qiniu Resource (Cloud) Storage:用于存储图片.apk等静态资源. 优点: 1.使用七牛带宽和CDN,速度快,不占用开发者服务器. 2.支持图片任意格式.任意分辨 ...
- domain规划
user-generated content 用户产生内容 和 admin-generated content 管理员产生内容,要区分开来,便于不同的图片压缩.备份.带宽.CDN.审核方案. 图片(j ...
- 压测2.0:云压测 + APM = 端到端压测解决方案
从压力测试说起 压力测试是确立系统稳定性的一种测试方法,通常在系统正常运作范围之外进行,以考察其功能极限和隐患.与功能测试不同,压测是以软件响应速度为测试目标的,尤其是针对在较短时间内大量并发用户的访 ...
- [WebKit]浏览器的加载与页面性能优化
非常棒.非常系统的一份资料,值得阅读! 原文来自百度泛用户体验. 作者:nwind 本文将探讨浏览器渲染的loading过程,主要有2个目的: 了解浏览器在loading过程中的实现细节,具体都做了什 ...
- 虎牙直播张波:掘金Nginx日志
大家好!我是来自虎牙直播技术保障部的张波.今天主要会从数据挖掘层面跟大家探讨一下 Nginx 的价值.OpenResty 在虎牙的应用场景主要 WAF 和流控等方面,我今天主要分享的是“ Nginx ...
- 315道python面试题(参考答案)
第一部分 Python基础篇 1:为什么学习Python 家里有在这个IT圈子里面,也想让我接触这个圈子,然后给我建议学的Python, 然后自己通过百度和向有学过Python的同学了解了Python ...
- 提高网站打开速度的7大秘籍---依据Yslow工具的优化【转】
很多站长使用虚拟主机来做网站,网页内容一旦很多,网站打开速度就会特别慢,如果说服务器.带宽.CDN这类硬指标我们没有经济实力去做,不妨通过网页代码优化的方式来提高速度,卢松松总结了一些可行性的方法. ...
随机推荐
- 将JSON对象转化为数组对象
package web.helper; import java.util.ArrayList; import net.sf.json.JSONArray; import web.model.Abstr ...
- Payload Inject And Fake
常见捆绑注入payload手法 Payload捆绑注入 注入exe型+编码: msfvenom -a <arch> --plateform <platform> -p < ...
- 第八章 监控 Zabbix
1.1 YUM部署 Zabbix 2.4 1. 前期准备(省略) l Yum源的配置 cd /etc/yum.repos.d/; mkdir old;mv ./* old/ rpm -Uvh ...
- 改造vim
1.安装Vim和Vim基本插件首先安装好Vim和Vim的基本插件.这些使用apt-get安装即可: lingd@ubuntu:~/arm$sudo apt-get install vim vim-sc ...
- QCMediaPlayer mediaplayer NOT present(android)
出现了“QCMediaPlayer mediaplayer NOT present”这个错误!!!我的手机是小米手机2,我给它刷机刷到了Android 4.4.4,后来我学长是这样解决的:case R ...
- 全局变量引起的BUG
花费3个小时解决了一个问题,时间比较长. 这次问题的原因是全局变量引起的,一个实例的函数用到了全局变量计算一个值,而全局变量的这个值会进行改变,所以在不同时期算出来的值是不一致的.而调用这个实例函数的 ...
- react学习笔记-02
1.组件嵌套 React允许将代码封装成一个component,然后像html标签一样,插入网页中中. var HelloMessage = React.createClass({ render: f ...
- winsock编程IOCP模型实现代码
winsock编程IOCP模型实现代码 话不多说,上代码.借鉴<windows核心编程>部分源码和CSDN小猪部分代码. stdafx.h依赖头文件: #include <iostr ...
- Python基础篇-day11 - 协程
本节主要内容: 1.Gevent协程2.Select\Poll\Epoll异步IO与事件驱动3.RabbitMQ队列 1.Gevent协程 1.1协程的好处 无需线程上下文切换的开销无需原子操作锁定及 ...
- Python基础篇-day7
本节目录-面向对象1 类介绍1.1 面向对象oo特征1.2 类的特性1.3 创建与调用 1.3.1 基本结构 1.3.2 结构说明 1.3.3 对外部提供只读访问接口 1.3.4 析构方法2 继承2. ...