带宽 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这类硬指标我们没有经济实力去做,不妨通过网页代码优化的方式来提高速度,卢松松总结了一些可行性的方法. ...
随机推荐
- 自动生成 Makefile (automake/autoconf 入门)
作为Linux 下的程序开发人员,大家一定都遇到过Makefile ,用make 命令来编译自己写的程序确实是很方便.一般情况下,大家都是手工写一个简单Makefile ,如果要想写出一个符合自由软件 ...
- 使用python之环境管理
情景1:不同python版本的管理 同一电脑上的多个python版本之前的管理,为了突出问题的普遍存在,下面是有人在segmentfault上提的问题. 摘自:http://segmentfaul ...
- 《C程序设计语言》 squeeze函数(从字符串s中删除字符c)
squeeze void squeeze(char string[], int ch) { int i, j; ; string[i] != '\0'; i++) { if (string[i] != ...
- Python笔记4-20151029
一.切片 L = [''Michael','Sarah','Tracy','Bob','Jack'] 取前N个元素,也就是索引为0-(N-1)的元素,可以用循环: >>> r = [ ...
- C# XML配置文件读写类(用于程序配置保存)
调用方式 //初始化并指定文件路径 XmlConfigUtil util = new XmlConfigUtil("C:\\1.xml"); //写入要保存的值以及路径(Syste ...
- installshield学习笔记
看预定义常量的值:SprintfBox(INFORMATION,"","%d",变量值); 自定义常量:#define MAXCOUNT 1000;#d ...
- poi做Excel数据驱动,支持.xls和.xlsx格式的excel文档,比起jxl强大不少
import java.io.FileInputStream;import java.io.InputStream;import java.util.Iterator;import java.util ...
- lr_save_var() 截取任意字符串长度,以参数形式输出(参数转变量)
Action() { char * desc=(char *)malloc(10); //定义指针变量,以变量形式存放截取到的参数值 // char * aa = "jadkshfkasd ...
- Linux 下Tomcat启动Cannot find ./catalina.sh
[root@localhost bin]# ./shutdown.sh shCannot find ./catalina.shThis file is needed to run this progr ...
- Jedis操作redis(转)
package org.jzkangta.jedis; import java.util.ArrayList; import java.util.HashMap; import java.util.I ...