导航:首页 > 网站优化 > 如何优化网站性能

如何优化网站性能

发布时间:2020-07-27 08:41:54

1、如何进行网站性能优化

内容页面优化就一个要点:你的访客要看到什么内容你就做什么内容。建议你以一个访客的角度来看你自己的网站,内容是否完善、页面是否好看、框架是否清晰……做好这些就算是内容优化了。

2、如何提高网站并发访问性能

1、HTML静态化
其实大家都知道,效率最高、消耗最小的就是纯静态化的html页面,所以我们尽可能使我们的网站上的页面采用静态页面来实现,这个最简单的方法
其实也是最有效的方法。但是对于大量内容并且频繁更新的网站,我们无法全部手动去挨个实现,于是出现了我们常见的信息发布系统CMS,像我们常访问的各个
门户站点的新闻频道,甚至他们的其他频道,都是通过信息发布系统来管理和实现的,信息发布系统可以实现最简单的信息录入自动生成静态页面,还能具备频道管
理、权限管理、自动抓取等功能,对于一个大型网站来说,拥有一套高效、可管理的CMS是必不可少的。
除了门户和信息发布类型的网站,对于交互性要求很高的社区类型网站来说,尽可能的静态化也是提高性能的必要手段,将社区内的帖子、文章进行实时的静态化、有更新的时候再重新静态化也是大量使用的策略,像Mop的大杂烩就是使用了这样的策略,网易社区等也是如此。
同时,html静态化也是某些缓存策略使用的手段,对于系统中频繁使用数据库查询但是内容更新很小的应用,可以考虑使用html静态化来实现。
比如论坛中论坛的公用设置信息,这些信息目前的主流论坛都可以进行后台管理并且存储在数据库中,这些信息其实大量被前台程序调用,但是更新频率很小,可以
考虑将这部分内容进行后台更新的时候进行静态化,这样避免了大量的数据库访问请求。
2、图片服务器分离
大家知道,对于Web服务器来说,不管是Apache、IIS还是其他容器,图片是最消耗资源的,于是我们有必要将图片与页面进行分离,这是基
本上大型网站都会采用的策略,他们都有独立的、甚至很多台的图片服务器。这样的架构可以降低提供页面访问请求的服务器系统压力,并且可以保证系统不会因为
图片问题而崩溃。
在应用服务器和图片服务器上,可以进行不同的配置优化,比如apache在配置ContentType的时候可以尽量少支持、尽可能少的LoadMole,保证更高的系统消耗和执行效率。
3、数据库集群、库表散列
大型网站都有复杂的应用,这些应用必须使用数据库,那么在面对大量访问的时候,数据库的瓶颈很快就能显现出来,这时一台数据库将很快无法满足应用,于是我们需要使用数据库集群或者库表散列。
在数据库集群方面,很多数据库都有自己的解决方案,Oracle、Sybase等都有很好的方案,常用的MySQL提供的Master/Slave也是类似的方案,您使用了什么样的DB,就参考相应的解决方案来实施即可。
上面提到的数据库集群由于在架构、成本、扩张性方面都会受到所采用DB类型的限制,于是我们需要从应用程序的角度来考虑改善系统架构,库表散列是常用并且最有效的解决方案。
我们在应用程序中安装业务和应用或者功能模块将数据库进行分离,不同的模块对应不同的数据库或者表,再按照一定的策略对某个页面或者功能进行更小的数据库散列,比如用户表,按照用户ID进行表散列,这样就能够低成本的提升系统的性能并且有很好的扩展性。
sohu的论坛就是采用了这样的架构,将论坛的用户、设置、帖子等信息进行数据库分离,然后对帖子、用户按照板块和ID进行散列数据库和表,最终可以在配置文件中进行简单的配置便能让系统随时增加一台低成本的数据库进来补充系统性能。
4、缓存
缓存一词搞技术的都接触过,很多地方用到缓存。网站架构和网站开发中的缓存也是非常重要。这里先讲述最基本的两种缓存。高级和分布式的缓存在后面讲述。
架构方面的缓存,对Apache比较熟悉的人都能知道Apache提供了自己的缓存模块,也可以使用外加的Squid模块进行缓存,这两种方式均可以有效的提高Apache的访问响应能力。
网站程序开发方面的缓存,Linux上提供的Memory
Cache是常用的缓存接口,可以在web开发中使用,比如用Java开发的时候就可以调用MemoryCache对一些数据进行缓存和通讯共享,一些大
型社区使用了这样的架构。另外,在使用web语言开发的时候,各种语言基本都有自己的缓存模块和方法,PHP有Pear的Cache模块,Java就更多
了,.net不是很熟悉,相信也肯定有。
5、镜像
镜像是大型网站常采用的提高性能和数据安全性的方式,镜像的技术可以解决不同网络接入商和地域带来的用户访问速度差异,比如ChinaNet和
ENet之间的差异就促使了很多网站在教育网内搭建镜像站点,数据进行定时更新或者实时更新。在镜像的细节技术方面,这里不阐述太深,有很多专业的现
成的解决架构和产品可选。也有廉价的通过软件实现的思路,比如Linux上的rsync等工具。
6、负载均衡
负载均衡将是大型网站解决高负荷访问和大量并发请求采用的高端解决办法。
负载均衡技术发展了多年,有很多专业的服务提供商和产品可以选择,我个人接触过一些解决方法,其中有两个架构可以给大家做参考。
(1)、硬件四层交换
第四层交换使用第三层和第四层信息包的报头信息,根据应用区间识别业务流,将整个区间段的业务流分配到合适的应用服务器进行处理。
第四层交换功能就像是虚IP,指向物理服务器。它传输的业务服从的协议多种多样,有HTTP、FTP、NFS、Telnet或其他协议。这些业
务在物理服务器基础上,需要复杂的载量平衡算法。在IP世界,业务类型由终端TCP或UDP端口地址来决定,在第四层交换中的应用区间则由源端和终端IP
地址、TCP和UDP端口共同决定。
在硬件四层交换产品领域,有一些知名的产品可以选择,比如Alteon、F5等,这些产品很昂贵,但是物有所值,能够提供非常优秀的性能和很灵活的管理能力。“Yahoo中国”当初接近2000台服务器,只使用了三、四台Alteon就搞定了。
(2)、软件四层交换
大家知道了硬件四层交换机的原理后,基于OSI模型来实现的软件四层交换也就应运而生,这样的解决方案实现的原理一致,不过性能稍差。但是满足一定量的压力还是游刃有余的,有人说软件实现方式其实更灵活,处理能力完全看你配置的熟悉能力。
软件四层交换我们可以使用Linux上常用的LVS来解决,LVS就是Linux Virtual
Server,他提供了基于心跳线heartbeat的实时灾难应对解决方案,提高系统的强壮性,同时可供了灵活的虚拟VIP配置和管理功能,可以同时满
足多种应用需求,这对于分布式的系统来说必不可少。
一个典型的使用负载均衡的策略就是,在软件或者硬件四层交换的基础上搭建squid集群,这种思路在很多大型网站包括搜索引擎上被采用,这样的架构低成本、高性能还有很强的扩张性,随时往架构里面增减节点都非常容易。
对于大型网站来说,前面提到的每个方法可能都会被同时使用到,这里介绍得比较浅显,具体实现过程中很多细节还需要大家慢慢熟悉和体会。有时一个很小的squid参数或者apache参数设置,对于系统性能的影响就会很大。
7、最新:CDN加速技术
什么是CDN?
CDN的全称是内容分发网络。其目的是通过在现有的Internet中增加一层新的网络架构,将网站的内容发布到最接近用户的网络“边缘”,使用户可以就近取得所需的内容,提高用户访问网站的响应速度。
CDN有别于镜像,因为它比镜像更智能,或者可以做这样一个比喻:CDN=更智能的镜像+缓存+流量导流。因而,CDN可以明显提高
Internet网络中信息流动的效率。从技术上全面解决由于网络带宽小、用户访问量大、网点分布不均等问题,提高用户访问网站的响应速度。
CDN的类型特点
CDN的实现分为三类:镜像、高速缓存、专线。
镜像站点(Mirror Site),是最常见的,它让内容直接发布,适用于静态和准动态的数据同步。但是购买和维护新服务器的费用较高,还必须在各个地区设置镜像服务器,配备专业技术人员进行管理与维护。对于大型网站来说,更新所用的带宽成本也大大提高了。
高速缓存,成本较低,适用于静态内容。Internet的统计表明,超过80%的用户经常访问的是20%的网站的内容,在这个规律下,缓存服务
器可以处理大部分客户的静态请求,而原始的服务器只需处理约20%左右的非缓存请求和动态请求,于是大大加快了客户请求的响应时间,并降低了原始服务器的
负载。
CDN服务一般会在全国范围内的关键节点上放置缓存服务器。
专线,让用户直接访问数据源,可以实现数据的动态同步。
CDN的实例
举个例子来说,当某用户访问网站时,网站会利用全球负载均衡技术,将用户的访问指向到距离用户最近的正常工作的缓存服务器上,直接响应用户的请求。
当用户访问已经使用了CDN服务的网站时,其解析过程与传统解析方式的最大区别就在于网站的授权域名服务器不是以传统的轮询方式来响应本地
DNS的解析请求,而是充分考虑用户发起请求的地点和当时网络的情况,来决定把用户的请求定向到离用户最近同时负载相对较轻的节点缓存服务器上。
通过用户定位算法和服务器健康检测算法综合后的数据,可以将用户的请求就近定向到分布在网络“边缘”的缓存服务器上,保证用户的访问能得到更及时可靠的响应。
由于大量的用户访问都由分布在网络边缘的CDN节点缓存服务器直接响应了,这就不仅提高了用户的访问质量,同时有效地降低了源服务器的负载压力。

3、如何优化网站服务器提升网站访问速度

网站运营的任何时期,网站访问速度都是至关重要的部分,它是网站友好体验中最基本的一项,如果访问体验都令人不满意,那么后期所做的营销推广模式都有可能徒劳无功,因为网络中客户的选择成本很低,加上普遍客户的耐心都不高,页面访问超过6秒客户就会选择离开,这对于一些流量本来就不高的企业网站来说无疑是雪上加霜。网站访问速度既然如此重要,今天笔者也要跟大家分享几个关于提升速度体验的方法,虽然网上有很多类似的文章和观点,但是大多数都是网站内部去解析,今天笔者要从服务器方面聊聊如何优化网站服务器提升网站访问速度。
大多数网站运营优化人员都知道通过页面优化来提升访问速度,当你已经完成了优化操作之后,发现没有什么大的改善,此时你就应该去思考是不是其它因素导致访问速度缓慢。比如:长期使用的服务器性能下降所致,为了保障业务不受影响,你或许应该对正在使用的服务器进行升级和优化了。
一、升级正在使用中的服务器
进行服务器升级工作之前,要考虑多方面的问题,是升级已有的服务器还是购置新的服务器设备须根据实际情况抉择。首先来说升级现有的服务器设备,一般来说网站运营到后期随着业务不断增加,多平台应用的开发对于服务器性能的要求也逐步提升,长而久之服务器遇到性能瓶颈也是情理之中的事情,对于这种情况,我们可以通过升级服务器(例如增加硬件设备或网络带宽)等相关配置来满足不断扩大的业务需求,那么服务器性能瓶颈问题就可以得到解决。再来说说购置新的服务器设备,也许有人会问为什么要重新购置呢,升级已有的服务器不可以吗?
这里笔者也当然想替大家节省一笔开支,但是根本问题在于大多数企业选购服务器时并不合理,加上网站建设之初为节约成本而选择了扩展性较差的服务器,导致即便是我们对现有的服务器进行升级,其性能提升的强度依然不够。此时,就需要重新购置服务器配合了,对于服务器的购置也有很多技巧,这里简单的做个推荐,如果用户群体是国内的建议选择国内知名的服务器供应商,若客户群体是遍布全球,大家可以选择香港服务器或美国服务器,除此之外,更重要的是要根据自身行业的特性做出合理的选择。
二、优化正在使用的服务器
不管是完成升级后的服务器,还是新购置的服务器,我们都要对其进行优化,从而提升服务器的性能以及利用率。下面从四个方面跟大家谈谈如何优化服务器:
要点一:尽可能的减少HTTP请求数
从客户访问网站页面到整个页面内容完全展现出来,这其中要花费较多的时间来下载各种Scripts、CSS样式表、Flash以及图片,而每一类下载都相当于一次HTTP请求,这样的请求越多网站被完全加载出来所花的时间会越长,意味着客户端的访问会很慢,那么此时就需要尽可能的减少HTTP请求数,通常我们可以直接把css和js写入到页面中,避免了外部的调用;或者我们可以把CSS文件和JS文件分来,在后台再进行合并,这样客户端浏览器相当于一次请求。总而言之,减少HTTP请求数我们可以通过减少外部各类文件的数量调用次数来达到其目的。
要点二:降低DNS查询时间
众所周知网络服务器端的域名和IP地址是相互对应的,当客户端发出请求时,计算机还需要通过域名和IP地址的相互转换来判断,而这个转换工作便是域名解析DNS,通常DNS的查询需要10~20毫秒时间,客户端浏览器也只会等待DNS查询结束之后才会加载此域名下的内容。因此,我们要加快页面的访问速度,就可以从降低DNS查询时间方面去做改善。
要点三:启用服务器Gzip压缩功能

对于大中型网站来说,页面的内容多且比较多样化,单个页面的大小可能是几百K以上了,客户端访问的时候下载会比较慢,此时我们可以采用服务器Gzip页面压缩功能,可以将一个大小为100K的页面文件压缩成25K以下,这样就可以减少网络传输的数量从而提高客户端访问速度。一般服务器都是可以使用Gzip压缩功能的,并且能够针对JS文件、CSS文件和Html进行压缩,多方面去进行优化网站访问速度。
要点四:推荐大中型网站使用CDN加速工具
CDN加速是目前大型网站普遍使用的页面加速方式,它对于网站优化几乎没有影响的,基本原理是将网站镜像备份到很多服务器节点上,使服务器节点周围的用户访问速度更快,从而提升客户端高速访问网站的体验;但是并不是所有的网站都适合使用CDN加速,一般对于小规模站点个人站的话,就不需要使用CDN加速,毕竟从长期来看这可是一笔不小的开支;建议图片站以及多媒体站点可使用CDN加速。
至此,以上为大家讲到了可以通过优化和升级服务器两个方面提升网站访问速度,如果你的网站目前的访问体验不佳,可以尝试进行以上操作,相信能够帮助大家改善此类问题。

4、如何优化网络

其一:尽量关闭那些特别占用资源的程序,如:杀毒软件扫描时候
其二:
好象有个什么软件叫作:e! My'Net'Assistant
能优化上网速度~~~
介绍如下:
e! My'Net'Assistant是一个集网络优化调整和网络安全维护的设置与管理的软件。e! My'Net'Assistant为用户提供:网络速度优化设置(可以用于Modem,ADSL,VDSL,LAN,PLC,Cable Modem,卫星传输等主流上网方式的性能优化,经过实测,1MB的ADSL,优化前下载速度有 100KB/S 已经很快了,优化后速度可以达到150甚至5xxKB/S,其性能可以提高100%—500%)、网络信息安全维护(IE插件免疫,常见木马分析,常见病毒检测,弹出广告拦截,恶意网站免疫)、系统常规设置、系统文件及注册表备份与还原、系统进程,服务,网络管理与监控等几十项功能模块。

全面提升网络性能,维护系统安全;让网络管理更有效,让上网更方便;加速!可以更快就不要等待;锁定!不想被用的就全部禁止;提升!让电脑性能飙到最高点!

简洁、合理的软件界面布局,全智能化和向导式的网络优化设置功能,使你操作起来轻松自如,一切就这么简单。现在,就开始行动......原来电脑性能可以更好的!

1.领先的网络优化项目,全面提升网络性能:软件开发组通过对WINDOWS操作系统环境(9X/Me/NT/2000/XP/2003)下的500台电脑的实际评测分析,自主分析评测出绝对领先的多达29项的网络优化项目,通过智能化的自动优化向导,将网络系统参数设置得更合理,让用户的网络性能发挥到最高点;为方便高级用户,软件内置了详细的自定义手工优化系统,可以更精确的设置各个项目;最安全、最先进的系统同步备份与还原功能,可以让用户轻松的将系统恢复到优化以前的状态,以保障系统的优化安全。

2.全新、快速的MaxMTU检测算法,让用户可以轻松检测出自己的TCP/IP最大传输单元:MaxMTU是指TCP/IP的最大传输单元,在TCP/IP协议中,将要传输的数据分成较小的组进行传输。MaxMTU的正确设置在一定程度上关系到网络优化的成败。而本软件的MaxMTU侦测模块可以高效准确的检测出正确的MaxMTU值,彻底解决同类软件检测MaxMTU波动性较大的弊病,同时在检测过程中对系统资源(如CPU)的占用率极低。

3.高效的网络信息检测技术:可以非常准确的检测出当前用户的详细的网络信息。

4.去除上网浏览网页时弹出的烦人的IE插件安装窗口:软件中内置的"IE插件免疫"功能,可以有效屏蔽四百多种国内外常见的ActiveX控件,包括:国内、国外、聊天、影音、游戏、安全、日常(如:3721上网助手、3721网络实名、CNNIC通用域名、百度IE搜索伴侣、3721中文邮、Flash Player)等等插件,还用户一个干净、清洁的网上冲浪环境。

5.常见木马与病毒检测分析:通过独特方式对系统各方面进行扫描检测分析,以找出系统中的隐患,维护系统的安全,真正做到“我的电脑,我控制”。

6.弹出广告与恶意网站的克星:通过简单实用的方式真正屏蔽网站中的弹出广告;自动免疫屏蔽恶意网站,用户还可以通过此功能屏蔽不良网站,以达到阻止孩子访问不良网站的目的,使他们免受有害信息的侵袭。

7.系统常规设置与优化:用户可以轻松的进行包括:界面、图标菜单、用户权限、IE常规等个性化设置;可以自动修复被恶意篡改的IE浏览器,分析IE地址栏中的已访问网址并进行自定义删除。

8.实用工具选项:从实用出发,为用户量身定作包括:系统备份与还原、系统进程管理、内存整理、网络监控、软件卸载、自动运行管理、网络校时与自动关机等实用工具,正真做到“有之必能用之”。

9.最安全、最先进的系统同步备份与还原功能:由软件开发组独创的最安全、最先进的系统同步备份与还原功能,可以让用户轻松的将系统恢复到优化与设置以前的状态,以保障系统的优化与设置安全。

5、如何对网站进行系统优化:整体布局篇

建站之前网站的定位。网站建设之前你一定要清楚建这个网站的目的,电子商务网上商城销售服装,企业网站宣传公司产品,个人博客分享经验心得想清楚建站目的之后,就是分析网站的用户群体了,针对不同的用户群体,确定网站的整体风格。关于网站运营策划,我会在后续文章中再谈,这里就不多说了。分析用户群体搜索习惯,确定网站关键词。网站定位清楚之后,就要分析用户群体的搜索习惯,他们会通过百度、Google搜索哪些词语,用户群体搜索量最大、竞争度相对较大的词就是主关键词,围绕主关键词发展来的词语就是次关键词(或者叫长尾关键词)。比喻上文分析我公司关键词排名下降中,提到的我公司的一个网站,主要是从事短信营销的,在分析潜在客户的搜索习惯后,我们确定网站的主关键词是短信群发群发短信短信营销,长尾关键词是短信群发软件短信群发软件下载等。我们要把这些关键词都记录下来,包括竞争度大小、搜索量等。关于关键词竞争度分析,武汉SEO博客会在后面文章单独讲。关键词布局。这个环节在SEO整体布局中很重要。一般的布局思想是,主关键词放在首页,因为用户需求大,竞争度大,长尾关键词放栏目页,相对竞争度大难以做排名的关键词,我们还可以单独做一个专题页。一般首页主推2~3个主关键词,每个栏目页主推1~2个常委关键词,不过这也要看具体的情况。各个页面的SEO。根据确定的、不同页面的关键词,进行系统的优化,包括Tittle,Keywords,Description,H1、H2、H3等标签,图片ALT属性各个页面要相互链接,主关键词指向首页,长尾关键词指向相应的栏目页,栏目页之间也要相互链接,同时要注意链接锚文本的多样化。外部推广,主要增加外链。网站排名上升(关键词排名),必须要有外部链接的辅助的。还是那句老话,内容为王,外链为皇。至于网站推广的一些常用方法,我也会在后续文章中介绍,这里提醒两点,是需要大家在做外链的时候要注意的:一是外链锚文本的多样化,二是外链的增长速度,健康的外链是呈J型增长的,这样增长的外链才不会被搜索引擎认为是作弊。网站的系统优化主要就包括这么多吧,当然其中还涉及到不少其他的问题,像服务器的稳定性、各部门之间的协调配合等。

6、如何优化web网站的性能

提升页面加载速度
1、图片大小越小打开速度越快
2、网页中代码不要臃肿所以不要有无用代码
3、js css使用外部引入
4、如果js css 不是显示用户看到的信息 而是一些特效的话放在最后加载。

7、网站打开速度慢怎么办,如何优化

网站打开速度慢的原因及解决方案:
一、网络传输质量
网络传输质量包含网站服务器和用户端的两个方面网络带宽质量,因为国内网络运营商分了电信、移动、联通等不同的网络运营服务商,若服务器和用户处在不同网络运营商的带宽环境下,会造成网络传输的跨网延迟。

针对这一现象,目前比较好的办法就是采用DNS或CDN这类能够智能根据用户所在地区、网络线路进行智能匹配的系统,从而降低非必要的网络延迟,匹配对应的同网响应IP。
二、DNS解析时间
DNS解析包含往复解析的次数及每次解析所花费的时间,它们两者的积即是DNS解析所耗费的时间,许多人都无视了DNS的重要性,其实DNS对网站解析速度也是十分重要的,一旦为网站提供DNS解析服务的服务器遭受攻击,所有访问该网站域名的请求均无法正常传达至网站服务器。

另外DNS解析功能的细分提供能力也在一定程度上,影响着DNS解析的结果,因此针对这一问题,可以选择一些像DNS.COM这类专业的DNS解析服务商,从而来保障域名解析的稳定。
三、服务器性能
包含服务器端与客户机端的硬件装备程度,相同的网络环境下,双核的服务器的运算才干必定要强一些,毫无疑问的,相同的网络环境下,你用一台赛扬的机器和奔四双核处置器的电脑,打开相同的页面,速度,也必定不相同。
这个问题没啥其他解决办法,只能掏钱更新设备了。
四、服务器软件
软件多少、安稳和软件是否正确配置,都会影响到服务器环境,致使影响到网络速度。服务器装置软件防火墙,会献身一些网络速度,所以VPS、或独立服务器用户装一个防火墙足矣。

五、页面内容
页面文件的巨细是网站是否能疾速翻开最重要一个要素,若是说服务器等硬件方面咱们决议不了,我强烈主张从这儿下手,不管是表格仍是DIV+CSS,恰当的优化代码,都能削减页面巨细。
尽量优化代码,用最少的代码,冗余代码也是拖慢网站速度之一。
六、许多数据库操作
小网站在履行许多数据库操作时,也会影响网站翻开速度,这儿使asp+access布局的网站尤为显着,尤其是一起有许多用户提交谈论时,就操作数据库锁死,致使网站打不开。
针对数据优化,这个就比较专业了,在这里就不详细列举,大家可以网上找一些相关教程说明。
七、页面使用过多脚本
网站上运用许多JS是大忌,不只搜索引擎无法录入,一起会不断提交恳求添加服务器担负,例如鼠标特效、节目的特效、状态栏的特效等等。这些特效的原理是先由服务器下载到你本地的机器,然后在你本地机器上运转发生,然后你才干看到的。特效做的多了,在你本地机器上就要运转大半天才干悉数完结,而若是你的主机装备通常的话,那就更慢了。
所以网站内容主张一定要少用javascript特效,或尽量采用合并单独的JS文件的形式减少重复读取JS内容的调用次数。
八、页面上用大图像和FLASH
咱们晓得图像是拖慢网速最重要一个要素,图像通过处置,可以使图像空间变小,不然许多的图像一开始都会占用许多空间又使网站翻开速度变得很慢,相同FLASH也是一个道理。
九、过多引证了其他网站的内容
包含你引证其他网站的图像、视频文件等,若是直接在页面引证另外网站的东西,而那个网站的速度又慢,或许那个网站的该页面现已不存在了,那么你翻开的速度就会十分慢。

8、网站性能优化怎么办

一、前端优化

网站性能优化是一个很综合的话题,涉及到服务器的配置和网站前后端程序等各个方面,我只是从实际经历出发,分享一下自己所尝试过的网站性能优化方法。之所以在标题上挂一个web2.0,是因为本文更偏重于中小网站的性能优化,我所使用的系统也是典型web2.0的LAMP架构。

首先讲讲前端的优化,用户访问网页的等待时间,有80%是发生在浏览器前端,特别是页面和页面中各种元素(图片、CSS、Javascript、 flash…)的下载之上。因此在很多情况下,相对于把大量的时间花在艰苦而繁杂的程序改进上,前端的优化往往能起到事半功倍的作用。雅虎最近将内部使用的性能测试工具yslow向第三方公开,并发布了著名的网站性能优化的十三条规则,建议你下载并安装yslow,并作为测评网站优化效果的工具。下面我挑其中特别有价值的具体说明一下优化的方法:

对于第一次访问您网站,尚未在浏览器cache中缓存您网站内容的用户,我们可以做的事情包括:

1)减少一个页面访问所产生的http连接次数
对于第一次访问你网站的用户,页面所产生的http连接次数是影响性能的一个关键瓶颈。

对策:
- 尽量简洁的页面设计,最大程度减少图片的使用,通过放弃一些不必要的页面特效来减少javascript的使用。
- 使用一些优化技巧,比如利用图片的背景位移减少图片的个数;image map技术;使用Inline images将css图片捆绑到网页中。
- 尽量合并js和css文件,减少独立文件个数。

2) 使用gzip压缩网页内容
使用gzip来压缩网页中的静态内容,能够显著减少用户访问网页时的等待时间(据说可达到60%)。主流的web服务器都支持或提供gzip压缩,如果使用apache服务器,只需要在配置文件中开启 mod_gzip(apache1.x)或mod_deflate(apache2.x)即可。凡是静态的页面,使用gzip压缩都能够显著提高服务器效率并减少带宽支出,注意图片内容本身已经是压缩格式了,务必不要再进行压缩。

3)将CSS放在页面顶端,JS文件放在页面底端
CSS的引用要放在html的头部header中,JS文件引用尽量放在页面底端标签的后面,主要的思路是让核心的页面内容尽早显示出来。不过要注意,一些大量使用js的页面,可能有一些js文件放在底端会引起一些难以预料的问题,根据实际情况适当运用即可。

4)使JS文件内容最小化
具体来说就是使用一些javascript压缩工具对js脚本进行压缩,去除其中的空白字符、注释,最小化变量名等。在使用gzip压缩的基础上,对js内容的压缩能够将性能再提高5%。

5)尽量减少外部脚本的使用,减少DNS查询时间
不要在网页中引用太多的外部脚本,首先,一次dns的解析过程会消耗20-120毫秒的时间;其次,如果在页面中引用太多的外部文件(如各种广告、联盟等代码),可能会因为外部文件的响应速度而将你的网站拖得很慢。如果不得不用,那么就尽量将这些脚本放在页脚吧。不过有一点需要提及,就是浏览器一般只能并行处理同一域名下的两个请求,而对于不同子的域名则不受此限制,因此适当将本站静态内容(css,js)放在其他的子域名下(如 static.xxx.com)会有利于提高浏览器并行下载网页内容的能力。

对于您网站的经常性访问用户,主要的优化思路就是最大限度利用用户浏览器的cache来减少服务器的开销。

1)在header中添加过期时间(Expires Header)
在header中给静态内容添加一个较长的过期时间,这样可以使用户今后访问只读取缓存中的文件,而不会与服务器产生任何的交互。不过这样做也存在一些问题,当图片、CSS和js文件更新时,用户如果不刷新浏览器,就无法获得此更新。这样,我们在对图片、css和js文件修改时,必须要进行重命名,才能保证用户访问到最新的内容。这可能会给开发造成不小的麻烦,因为这些文件可能被站点中的许多文件所引用。flickr提出的解决办法是通过url rewrite使不同版本号的URL事实上指向同一个文件,这是一个聪明的办法,因为url级别的操作效率是很高的,可以给开发过程提供不少便利。

要理解为什么这样做,必须要了解浏览器访问url时的工作机制:
a. 第一次访问url时,用户从服务器段获取页面内容,并把相关的文件(images,css,js…)放在高速缓存中,也会把文件头中的expired time,last modified, ETags等相关信息也一同保留下来。
b. 用户重复访问url时,浏览器首先看高速缓存中是否有本站同名的文件,如果有,则检查文件的过期时间;如果尚未过期,则直接从缓存中读取文件,不再访问服务器。
c. 如果缓存中文件的过期时间不存在或已超出,则浏览器会访问服务器获取文件的头信息,检查last modifed和ETags等信息,如果发现本地缓存中的文件在上次访问后没被修改,则使用本地缓存中的文件;如果修改过,则从服务器上获取最新版本。

我的经验,如果可能,尽量遵循此原则给静态文件添加过期时间,这样可以大幅度减少用户对服务器资源的重复访问。

2)将css和js文件放在独立外部文件中引用
将css和js文件放在独立文件中,这样它们会被单独缓存起来,在访问其他页面时可以从浏览器的高速缓存中直接读取。一些网站的首页可能是例外的,这些首页的自身浏览可能并不大,但却是用户访问网站的第一印象以及导向到其他页面的起点,也可能这些页面本身使用了大量的ajax局部刷新及技术,这时可以将 css和js文件直接写在页面中。

3)去掉重复的脚本
在IE中,包含重复的js脚本会导致浏览器的缓存不被使用,仔细检查一下你的程序,去掉重复引用的脚本应该不是一件很难的事情。

4)避免重定向的发生
除了在header中人为的重定向之外,网页重定向常在不经意间发生,被重定向的内容将不会使用浏览器的缓存。比如用户在访问www.xxx.com,服务器会通过301转向到www.xxx.com/,在后面加了一个“/”。如果服务器的配置不好,这也会给服务器带来额外的负担。通过配置apache的 alias或使用mod_rewrite模块等方法,可以避免不必要的重定向。

还有一些,比如使用CDN分发机制、避免CSS表达式等、避免使用ETags等,因为不太常用,这里就不再赘述了。

做完了上述的优化,可以试着用yslow测试一下网页的性能评分,一般都可以达到70分以上了。

当然,除了浏览器前端和静态内容的优化之外,还有针对程序脚本、服务器、数据库、负载的优化,这些更深层次的优化方法对技术有更高的要求。本文的后半部分将重点探讨后端的优化。

二、后端优化

上次写完web2.0网站前端优化篇之后,一直想写写后端优化的方法,今天终于有时间将思路整理了出来。

前端优化可以避免我们造成无谓的服务器和带宽资源浪费,但随着网站访问量的增加,仅靠前端优化已经不能解决所有问题了,后端软件处理并行请求的能力、程序运 行的效率、硬件性能以及系统的可扩展性,将成为影响网站性能和稳定的关键瓶颈所在。优化系统和程序的性能可以从以下的方面来入手:

1)apache、mysql等软件的配置的优化
尽管apache和mysql等软件在安装后使用的默认设置足以使你的网站运行起来,但是通过调整mysql和apache的一些系统参数,还是可以追求更高的效率和稳定性。这个领域中有很多专业的文章和论坛(比如: http://www.mysqlperformanceblog.com/),要想掌握也需要进行深入的研究和实践,这里就不重点讨论了。

2)应用程序环境加速
这里仅以我最常应用的php开发环境为例,有一些工具软件可以通过优化PHP运行环境来达到提速的目的,其基本原理大致是将PHP代码预编译并缓存起来,而不需要改变任何代码,所以比较简单,可以将php的运行效率提升50%以上。比较常用的免费php加速工具有:APC( http: //pecl.php.net/package-info.php?package=APC)、Turck MMCache( http://turck-mmcache.sourceforge.net)、php accelebrator(www.php-accelerator.co.uk),还有收费的Zend Performance Suite

3)将静态内容和动态内容分开处理
apache是一个功能完善但比较庞大的web server,它的资源占用基本上和同时运行的进程数呈正比,对服务器内存的消耗比较大,处理并行任务的效率也一般。在一些情况下,我们可以用比较轻量级的web server来host静态的图片、样式表和javascript文件,这样可以大大提升静态文件的处理速度,还可以减少对内存占用。我使用的web server是来自俄罗斯的nginx,其他选择方案还包括lighttpd和thttpd等。

4)基于反向代理的前端访问负载均衡
当一台前端服务器不足以应付用户访问时,通过前端机实现web访问的负载均衡是最快速可行的方案。通过apache的mod_proxy可以实现基于反向代理的负载均衡,这里推荐使用nginx做代理服务器,处理速度较apache更快一些。

5)应用缓存技术提高数据库效能,文件缓存和分布式缓存
数据库访问处理并发访问的能力是很多网站应用的关键瓶颈,在想到使用主从结构和多farm的方式构建服务器集群之前,首先应该确保充分使用了数据库查询的缓存。一些数据库类型(如mysql的innoDB)自身内置对缓存的支持,此外,还可以利用程序方法将常用的查询通过文件或内存缓存起来。比如通过 php中的ob_start和文件读写函数可以很方便的实现文件形式的缓存,而如果你拥有多台服务器,可以通过memcache技术通过分布式共享内存来对数据库查询进行缓存,不仅效率高而且扩展性好,memcache技术在livejournal和Craigslist.org等知名网站应用中都得到了检验。

6)服务器运行状态的检测,找到影响性能的瓶颈所在
系统优化没有一劳永逸的方法,需要通过检测服务器的运行状态来及时发现影响性能的瓶颈,以及可能存在的潜在问题,因为网站的性能,永远取决于木桶中的短板。可以编写一些脚本来检测web服务的运行,也有一些开源的软件也提供了很好的功能

7)良好的扩展架构是稳定和性能的基础
一些技巧和窍门可以帮你度过眼前的难关,但要想使网站具备应付大规模访问的能力,则需要从系统架构上进行彻底的规划,好在很多前人无私的把他们架构
网站的经验分享给我们,使我们可以少走甚多弯路。我最近读到的两篇有启发的文章:
- 从LiveJournal后台发展看大规模网站性能优化方法
- Myspace的六次重构

最后不得不提到程序编码和数据库结构对性能的影响,一系列糟糕的循环语句,一个不合理的查询语句、一张设计不佳的数据表或索引表,都足以会使应用程序运行的速度成倍的降低。培养全局思考的能力,养成良好的编程习惯,并对数据库运行机制有所了解,是提高编程质量的基础。

9、如何提高网络性能

1.如果是下载推荐“迅雷”跟“DUDU加速器”;
2.如果是浏览网页建议用“WINDOWS优化大师”优化网络设置,同时你还可以自己在EXPLORER里面优化设置一下:工具——》选项——》高级,然后将一些诸如动画啊,声音之类的你平时上网用不上的全部屏蔽掉——这样可以减少相当量的网络带宽浪费哦!
3.一点小技巧:当你打开的某个网页中你所需要的链接已经显示出来后,请点击“停止”按扭,就是工具栏上“刷新”按扭左边那个“叉”,以免不必要的网络资源浪费。
4.最重要的一点——多收集一点相关技巧资料,还是要学习哦!这里也只能简单地跟你交流一些。多下载一些相关的电子书籍吧(有兴趣的话你可以浏览我的共享资料,我会慢慢尽量多地共享好东西的)

与如何优化网站性能相关的知识