当前位置: 主页 > 网络架构 >

系统速度优化及案例

时间:2013-05-05 16:39来源:www.itkoala.com 作者:itkoala 点击:
这里的系统是指单台硬件服务器或服务器集群,也包括服务器上运行的操作系统及应用,系统层的优化也将针对以上环节及策略进行。除开网络层,用户访问互联网产品所得到的所有内
欢迎大家分享自己的文档,请点击查阅:分享方法,Linux系统运维
如果你喜欢这文章,可以点击文章结尾处百度分享,分享到你的各种社区收藏,或推荐给朋友……


返回:海量运维、运营规划--linux网络架构规划首页
这里的系统是指单台硬件服务器或服务器集群,也包括服务器上运行的操作系统及应用,系统层的优化也将针对以上环节及策略进行。除开网络层,用户访问互联网产品所得到的所有内容,都要从系统层生成并返回给用户,所以系统层的各环节也决定了速度的快慢,影响的范畴与网络层一致,是全范围的影响,结合个人的经验,将主要的系统优化实践汇总如下:
 

系统优化项 优化说明 备注
动、静态应用分离 产品在上线初期多数是混用的,初期访问量少的情况下,影响有限,但上规模后,非常用必要将静态进行剥离,使用最优静态架构、服务器和OS配置(退役旧设备),动态做域名数量收敛。 内容拆分是硬件选型、CDN加速和web server配置优化的前题
多级Cache策略 无论终端、前端、后端,都需要将最热的数据cache在第一层(通过淘汰策略去除冷数据),并要设计多级缓存的,对于冷数据或搜索数据的索引,更新不会很频繁,一般放二级缓存。多级缓存策略要体现在多ISP、IDC特性,特别是静态应用,要尽最大可能接近用户。 互联网应用,缓存是永恒不怕的话题,也是必修课
选择合适的服务器 Web服务性能由应用类型来决定的,如果是静态的,系统瓶颈是网络子系统和内存。如果动态应用或逻辑服务、数据库服务主要进行密集计算(例如动态产生Web页),系统瓶颈主要是内存、CPU、磁盘子系统和网络子系统;缓存服务、存储服务也要针对业务优先级选择不同的存储介质。 精益求精最好,让应用层的性能达到极致
选择合适web server 越海量,越要重视,自研或定制合适业务场景的高负载、高并发下性能优越于apache的Web server,腾讯自开发的静态Web server TWS、CWS及动态web server Qhttp,在高负载状态下性能卓越且稳定;百度有定制适合检索服务的BWS,淘宝有定制nginx。 高并发或者是超载情况下,网页会出现延时或不能加载,大型互联网公司都有定制web serer
尽量使请求可缓存 现在越来越多的图片,脚本,css,flash被嵌入到页面中,当我们访问他们的时候势必会做许多次的http请求。其实我们可以通过设置Expires header来缓存这些文件。Expire其实就是通过header报文来指定特定类型的文件在浏览器中的缓存时间。大多数的图片,flash在发布后都是不需要经常修改的,做了缓存以后这样浏览器以后就不需要再从服务器下载这些文件而是而直接从缓存中读取,这样再次访问页面的速度会大大加快。 静态最大化缓存,甚至有策略的做缓存是必要的,简单有效,但在百度很多产品中仍存在很多不做缓存的情况
使用Gzip压缩文件内容 Gzip是目前最流行也是最有效的压缩方式。Gzip的思想就是把文件先在服务器端进行压缩,然后再传输。这样可以显著减少文件传输的大小。传输完毕后浏览器会重新对压缩过的内容进行解压缩并执行。目前的浏览器都能“良好”地支持 gzip。而且gzip的压缩比例非常大,一般压缩率为85%,就是说服务器端100K的页面可以压缩到25K左右再发送到客户端。 Gzip对基础页和文本文件的加载速度有质的飞跃,甚至直接影响首屏速度
内核优化 内核是操作系统的核心,它使操作系统与安装的任何一种软件都可以和计算机硬件进行通信,根据应用场景,通过修改Linux的内核相关TCP参数达到最大化系统网络速度和并发能力。 需要平衡CPU资源、web server配置,最好做到因地制宜

主要系统优化案例分享如下:

1、设置缓存和Gzip,百度凤巢系统因历史原因,服务器未设置过缓存和gzip,将服务做过折分后,针对静态进行优化,收益分析如下所示。(数据来源百度客户端监测)
 

任务名称 首屏时间 总下载时间 下载字节数 内容下载时间 可用性(%) 连接建立时间 重定向时间 客户端时间
首页(cache) 1.07 2.2 90.63 1.95 99.93 0.06 0 0.45
首页(no cache) 3.34 12.11 907.2 10.91 94.73 0.06 0.38 0.93

2、服务分离及模块化,腾讯的重要平台都有针对业务类型进行模块化和剥离,例如腾讯网将静态进行了最小颗粒的区分成模块,例如视图、图片、页面、下载模块等,每个模块都有对应的IDC分布策略、硬件选型、架构设计、容灾调度等,任何一个新的产品,只要打散接入即可,速度和性能既可达到业界最优,细节如下图所示。百度搜索产品、社区产品、商业化产品的优化也是经过了服务拆分,进而将速度做到极致。

3、系统内核优化,通过调整初始拥塞窗口,加速tcp慢启动过程,缩短下载时间,即init cwnd值,google的网页搜索调整了从3到42的初始拥塞窗口,发现10-16的窗口是性能最佳的值,更大的窗口反而会增加丢包和重传,基本也可以理解为根据产品的类型适度的进行调整,找到最理想值,达到最大收益即可,百度搜索针对初始拥塞窗口优化,第一次连接传输时间的优化效果高达20%-30%,均摊到总传输时间,优化为10%-15%,详细如下图所示。

4、web server优化,腾讯网做为网户网站,腾讯网+QQ弹消息的模式,因QQ同时在线>1.5亿,热点重大事件导致流量在短时间突增到平常的3~5倍,出流量可以达到数百G(几乎每天都有淘宝双11的流量),所以需要高性能的页面(html、js)、图片(大图、小图)web server组合,页面服务器采用Squid(定制)+Nginx(定制)架构效率提升7~10倍,图片服务器TWS Cache(自研) + TWS Server(自研),单台最高出流量达到900M,将性能和成本达到极致,自研的web server在高负载下表现卓越,详细数据如下图所示。
 


 

转载请注明linux系统运维
http://www.linuxyw.com/linux/wangluojiagou/20130420/65.html

------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
验证码: 点击我更换图片