欢迎大家分享自己的文档,请点击查阅:分享方法,
如果你喜欢这文章,可以点击文章结尾处百度分享,分享到你的各种社区收藏,或推荐给朋友……
返回:海量运维、运营规划--linux网络架构规划首页
互联网产品被产品经理(PM)设计出来,然后前端工程师(FE)和研发工程师(RD)进行生产,由运营和销售推上市场,再由运维工程师(OP)和网络工程师(SYS)保持稳定运行,这四个环节都会对速度造成影响,所以速度监测、分析、优化是一个系统工程,涉及到的角色、人、环节非常多,详细如下图所示:

那如何进行全面有效的速度分析,进而开展速度优化呢,个人的体会速度分析着重对应以上四个环节即可:
1、设计过程,主要分析PM设计产品的功能或逻辑是否合理,例如登录QQ会弹一个mini新闻页,原来PM设计是打开新闻页后要轮循加载五个新闻频道页面,最后上线评估发现QQ同时在线>1亿,这样串行加载5个页卡需要额外添加50~80台服务器和消耗3~5G带宽,速度比原来慢4~5倍外,每年需要多花费约300~350万成本。
2、生产过程,主要分析FE网页制作及RD逻辑处理等是否合理,这两种角色决定了网页大小、元素数量、逻辑复杂度、后台响应和效率等,这些与速度是成正比的,网页越多大,速度越慢,例如分析baidu和soso同时检索“天气”这个关键字的时候,通过工具抓包发现baidu检索结果加载了27个元素、119KB内容,soso只有15个元素、75KB,如果在不考虑网络、浏览器因素的话,soso的速度肯定要比baidu快15%~20%。生产过程环节是影响速度的最重要的环节,前面的速度监测和后面会提到的分析工具、优化案例主要针对这一环节。
3、运行过程,主要分析产品上线后,编辑、运营及用户生产的内容对网页的影响,例如百度音乐,总页面900KB,但有一位编辑将一个60*40,但有400KB的图片上传到了首页,速度直线下降40%;例如百度tieba,一个贴子有大量用户产生的内容,平均一个贴子有10~30张图片,用户对上传的内容是没有感知的,通常数百KB,有时一张图片可以将速度拉下50%,经过图片自动优化后,每张图片在保持质量的情况下,一些大图的速度可以提升数倍。
4、访问过程,主要分析具有省份、区域、运营商等属性的用户访问产品叶,是否会存在网络、系统、应用性能等问题,例如百度2011年优化前存在7%DNS跨网解析、北京电信覆盖局限、BGP使用少等原因导致较竞争对手慢20%~30%;80%的产品线未使用CDN,静态应用通过CDN可提速20%~30%+,单百度商业产品可成本缩减2000万/年,2012年后经过优化,百度PC搜索、移动搜索、商业广告等产品线已经反超竞争对手,做到了业界最快。
通过百度搜索与腾讯soso的对比分析来帮助理解,通过分析两家公司检索结果速度,进而分析这两家公司在前端、系统、网络、网络的优劣,从而针对问题进行优化,案例分析如下:
一、概述
通过第三方基调网络,调用全国200个城市数万真实招募用户监测点,访问百度搜索、腾讯soso检索关键字“天气”,进而分析全国各省、各运营商用户的体验。
二、分析
1、元素分析,在页面大小相当的情况下,百度检索页连接数比腾讯检索页多出三分之一,JS数量多出一倍,页面越大越慢,JS是性能杀手,JS越多速度越慢。
监测任务 |
连接数(个) |
Size(KB) |
Js(个/KB) |
Images(个/KB) |
静态占比 |
baidu.com |
25 |
86.2 |
8/53.6 |
14/21 |
86.5% |
soso.com |
18 |
76.3 |
4/29.6 |
10/29.8 |
85.2% |
2、趋势分析,baidu电信“总下载时间”平均慢40.8%,联通平均慢17.1%,可以看出这是百度电信、联通IDC都在北京的结果,腾讯全国五大区域都有IDC,速度明显有优势。
电信

联通

3、总下载时间和运营商分析,baidu主要运营商(电信、联通、移动、教育网)“总下载时间”平均慢三分之一,主要受内容下载时间拖累,小运营商全面慢于腾讯。

4、区间分析,5s<“总下载时间”<10s的样本中,“内容下载时间”平均占“总下载时间”的76%,是造成慢速比的主要原因,慢速省份主要分布在华东、华南电信大省。
总下载时间区间 |
电信 |
联通 |
baidu.com |
soso.com |
baidu.com |
soso.com |
样本数量 |
比例 |
样本数量 |
比例 |
样本数量 |
比例 |
样本数量 |
比例 |
0~5 秒 |
6488 |
91.10% |
6937 |
95.60% |
2097 |
88.70% |
2070 |
93.00% |
5~10 秒 |
520 |
7.30% |
308 |
4.20% |
229 |
9.70% |
139 |
6.20% |
10~15 秒 |
101 |
1.40% |
1 |
0.00% |
32 |
1.40% |
9 |
0.40% |
大于15秒 |
10 |
0.11% |
9 |
0.10% |
5 |
0.20% |
9 |
0.40% |
5、区域、省份分析,baidu电信、联通大省“内容下载时间”平均慢于soso 20%~40%。
电信区域 |
电信省份 |
占电信总比例 |
baidu |
soso |
baidu比soso慢的百分比 |
内容下载时间 |
样本数量 |
内容下载时间 |
样本数量 |
华东 |
上海 |
4.80% |
1.409 |
10 |
1.252 |
82 |
12.54% |
江苏 |
9.72% |
1.497 |
636 |
1.252 |
600 |
19.57% |
浙江 |
9.53% |
1.44 |
826 |
1.111 |
831 |
29.61% |
湖北 |
4.39% |
1.394 |
455 |
1.247 |
434 |
11.79% |
华南 |
湖南 |
4.10% |
1.556 |
717 |
1.325 |
673 |
17.43% |
广东 |
22.91% |
2.531 |
3323 |
1.778 |
2792 |
42.35% |
广西 |
3.17% |
3.435 |
482 |
1.554 |
478 |
121.04% |
西南 |
重庆 |
2.34% |
1.884 |
321 |
1.413 |
347 |
33.33% |
贵州 |
1.86% |
2.724 |
13 |
1.36 |
67 |
100.29% |
西北 |
陕西 |
4.13% |
1.665 |
365 |
1.134 |
394 |
46.83% |
总计 |
66.95% |
2.063 |
7484 |
1.422 |
7627 |
43.48% |
联通区域 |
联通省份 |
占联通总比 |
baidu.com |
soso.com |
baidu比soso慢的百分比 |
内容下载时间 |
样本数量 |
内容下载时间 |
样本数量 |
华北 |
河北 |
11.44% |
2.566 |
977 |
1.994 |
758 |
22.29% |
山西 |
5.48% |
1.432 |
150 |
1.012 |
161 |
29.33% |
辽宁 |
7.59% |
2.498 |
711 |
2.44 |
588 |
2.32% |
吉林 |
3.96% |
2.179 |
68 |
1.282 |
68 |
41.17% |
山东 |
14.94% |
1.759 |
55 |
1.366 |
81 |
22.34% |
河南 |
12.07% |
3.829 |
9 |
3.351 |
18 |
12.48% |
平均/汇总 |
56.11% |
2.377 |
1970 |
1.908 |
1674 |
19.76% |
三、结论
百度检索关键字“天气”全国主要省份及运营商速度比竞争对手腾讯soso慢20%~40%。
四、问题及优化建议
问题 |
问题分析 |
优化建议 |
预计收益 |
网页元素 |
Baidu连接数比soso多7个(多39%);内容大9.9KB(大13%);Js多4个、大24KB(数量多100%、大81%)。连接数、内容越小速度越快,Js是串行加载,每一个都影响速度 |
重点合并和优化Js,减少Js、图片数量和大小;连接数和内容最好小于soso |
理论上连接数和内容减少的比例与速度提升比例成反比,可以帮助将差距减少5%~10% |
CDN分布 |
Soso静态根据省用户分布使用54个CDN节点,联通19个,电信29个,移动3个,教育网3个,最大限度电信、联通省内覆盖,移动、教育网区域覆盖。baidu只有北京电信、联通,而且成本高出2~3倍 |
静态实现自建CDN+第三方CDN全国省内覆盖,电信、联通重点省份实现市级覆盖,移动、教育网实现区域覆盖;静态速度超过soso=整体速度快过soso |
Soso快在静态“内容下载时间”少,主要受益CDN分布与策略,CDN可以帮助将差距减少到10%以内 |
IDC覆盖 |
soso动态电信华东、华南、西北区哉IDC覆盖,专线互通,与电信用户就近接入。Baidu只有北京电信联通覆盖 |
动态实现华东、华南覆盖、互通(或代理) |
成本大,收益小(因北京单IDC覆盖较强与soso深圳、上海、西安相比差距不悬殊,加上动态平衡计算时间、跨区域传输等原因,整体收益小) |
内容拆分 |
soso静态与动态内容做拆分,并且使用最合适架构;baidu静态与动态混用在apache下并互联影响 |
将静态进行剥离,使用最优静态架构、服务器和OS配置(退役旧设备);动态做域名数量收敛 |
只有将静态拆分才可以做到CDN、域名拆分、OS、Web server优化等最大收益 |
域名拆分 |
soso启用非soso.com域名qstatic.com隔离Cookie,同时使用cache.soso.com配合规避浏览器并发限制,两个域名同时使用全国CDN加速,baidu静态受Cookie、浏览器并发限制 |
启用非baidu.com域名,如bdimg.com,启用两个二级域名i1.bdimg.com/i2.bdimg.com专用于静态内容,隔离Cookie,规避浏览器并发限制 |
静态文件数越多,收益越大,文件数>50个,速度提升5%~10% |
Web server |
soso动态使用定制server,静态自研或第三方自研server,baidu主要是使用apache |
自研或定制高负载、高并发下性能优越于apache的Web server,腾讯自开发的静态Web server TWS、CWS,在高负载状态下性能卓越且稳定 |
海量业务有百益无一害,特别针对文本(html、js、css)可做二次压缩输出,速度提升5%左右
|
转载请注明linux系统运维:
http://www.linuxyw.com/linux/wangluojiagou/20130420/60.html |