- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
1?平台优化方案
大型网站,在面对大量用户访问、高并发请求方面,基本的解决方案集中在 这样几个环节:使用高性能的服务器、高性能的数据库、高效率的编程语言、还 有高性能的Web容器。但是除了这几个方面,还没法根本解决大型网站面临的高 负载和高并发问题。
上面提供的几个解决思路在一定程度上也意味着更大的投入,并且这样的解 决思路具备瓶颈,没有很好的扩展性,下面我从低成本、高性能和高扩张性的角 度来说说我的一些经验。
1.1. HTML静态化
由于效率最高、消耗最小的就是纯静态化的html页面,所以尽可能使网站上 的页而采用静态页而来实现,这个最简单的方法其实也是最有效的方法。但是对 于大量内容并且频繁更新的网站,无法全部手动去挨个实现,于是出现了常见的 信息发布系统CMS,信息发布系统可以实现最简单的信息录入自动生成静态页面, 还能具备频道管理、权限管理、自动抓取等功能,对于一个大型网站来说,拥有 一套高效、可管理的CMS是必不可少的。
除了门户和信息发布类型的网站,对于交互性要求很高的社区类型网站来说, 尽可能的静态化也是提高性能的必要手段,将社区内的帖子、文章进行实时的静 态化,有更新的吋候再重新静态化也是大量使用的策略,女口Mop的大杂绘就是使 用了这样的策略,网易社区等也是如此。
同时,html静态化也是某些缓存策略使用的手段,对于系统中频繁使用数据 库查询但是内容更新很小的应用,可以考虑使用html静态化来实现,比如论坛中 论坛的公用设置信息,这些信息目前的主流论坛都可以进行后台管理并且存储在 数据库中,这些信息其实大量被前台程序调用,但是更新频率很小,可以考虑将 这部分内容进行后台更新的时候进行静态化,这样避免了大量的数据库访问请求。
1?2图片服务器分离
对于Web服务器来说,不管是Apache. IIS还是其他容器,图片是最消耗资源 的,于是有必要将图片与页面进行分离,这是基本上大型网站都会采用的策略, 他们都有独立的图片服务器,甚至很多台图片服务器。这样的架构可以降低提供 页面访问请求的服务器系统压力,并且可以保证系统不会因为图片问题而崩溃, 在应用服务器和图片服务器上,可以进行不同的配置优化,比如apache在配置 ContentType的时候可以尽量少支持,尽可能少的LoadModule,保证更高的系统 消耗和执行效率。
CPU与I0均衡
在一个网站提供的所有功能中,有的功能可能需要消耗大量的服务器端io资 源,像下载,视频播放等,而有的功能则可能需要消耗大量的服务器CPU资源, 像视频格式转换,LOG统计等。在一个服务器集群中,当发现某些机器上CPU和10 的利用率相差很大的时候,例如CPU负载很高而10负责很低,可以考虑将该服务 器上的某些耗CPU资源的进程换成耗10的进程,以达到均衡的目的。均衡每一台 机器的CPU和10消耗,不仅可以获得更充分的服务器资源利用,而月?还能够支持 暂时的过载,遇到突发事件,访问流量剧增的时候,实现得体的性能下降 (Graceful performance degradation), 而不是立艮卩崩溃。
读写分离
如果网站的硕盘读写性能是整个网站性能提升的一个瓶颈的话,可以考虑将 硬盘的读,写功能分开,分别进行优化。在专门用来写的硬盘上,我们可以在Linux 下使用软件RAID-0 (磁盘冗余阵列0级)。RAID-0在获得硬盘10提升的同时,也 会增加整个文件系统的故障率一一它等于RAID中所有驱动器的故障率之和。如果 需要保持或提高硬盘的容错能力,就需要实现软件RAID-1, 4或5,它们能在某一 个(甚至儿个)磁盘驱动器故障之后仍然保持整个文件系统的止常运行,但文件 读写效率不如RAID-Oo而专门用来读的硬盘,则不用如此麻烦,可以使用普通的 服务器硬盘,以降低开销。
一般的文件系统,会综合考虑各种大小和格式的文件的读、写效率,因而对 特定的文件读或写的效率不是最优。如果有必要,可以通过选择文件系统,以及 修改文件系统的配置参数来达到对特定文件的读或写的效率最大化。比如说,如 果文件系统中需要存储大量的小文件,则可以使用ReiserFS来替代Linux操作系 统默认的ext3系统,因为ReiserFS是基于平衡树的文件系统结构,尤其对于大量 文件的巨型文件系统,搜索速度要比使用局部的二分查找法的cxt3快。ReiserFS 里的目录是完全动态分配的,因此不存在ext3中常见的无法回收巨型目录占用的 磁盘空间的情况。ReiserFS里小文件(4K)可以直接存储进树,小文件读取和 写入的速度更快,树内节点是按字节对齐的,多个小文件可共享同一个硬盘块, 节约大量空间。ext3使用固定大小的块分配策略,也就是说,不到4K的小文件也 要占据4K的空间,导致的空间浪费比较严重。但R
文档评论(0)