网站性能优化比例,优化网站性能架构提升用户体验

seo基础     2020-12-29    浏览:0

优化网站性能架构提升用户体验

  什么叫高性能的网站?

  两个网站性能架构设计方案:A方案和B方案,A方案在小于100个并发用户访问时,每个请求的响应时间是1秒,当并发请求达到200的时候,请求的响应时间将骤增到10秒。B方案不管是100个并发用户访问还是200个并发用户访问,每个请求的响应时间都差不多是1.5秒。哪个方案的性能好?如果老板说“我们要改善网站的性能”,他指的是什么?

  同类型的两个网站,X网站服务器平均每个请求的处理时间是500毫秒,Y网站服务器平均每个请求的处理时间是1000毫秒,为什么用户却反映Y网站的速度快呢?

  网站性能是客观的指标,可以具体体现到响应时间、吞吐量等技术指标,同时也是主观的感受,而感受则是一种与具体参与者相关的微妙的东西,用户的感受和工程师的感受不同,不同的用户感受也不同。

  网站性能测试

  性能测试是性能优化的前提和基础,也是性能优化结果的检查和度量标准。不同视角下的网站性能有不同的标准,也有不同的优化手段。

  不同视角下的网站性能

  软件工程师说到网站性能的时候,通常和用户说的不一样。

  1.用户视角的网站性能

  从用户角度,网站性能就是用户在浏览器上直观感受到的网站响应速度快还是慢。用户感受到的时间,包括用户计算机和网站服务器通信的时间、网站服务器处理的时间、用户计算机浏览器构造请求解析响应数据的时间,如图1所示。

优化网站性能架构提升用户体验 三联

  图1 用户视角的网站性能

  不同计算机的性能差异,不同浏览器解析HTML速度的差异,不同网络运营商提供的互联网宽带服务的差异,这些差异最终导致用户感受到的响应延迟可能会远远大于网站服务器处理请求需要的时间。

  在实践中,使用一些前端架构优化手段,通过优化页面HTML式样、利用浏览器端的并发和异步特性、调整浏览器缓存策略、使用CDN服务、反向代理等手段,使浏览器尽快地显示用户感兴趣的内容、尽可能近地获取页面内容,即使不优化应用程序和架构,也可以很大程度地改善用户视角下的网站性能。

  2.开发人员视角的网站性能

  开发人员关注的主要是应用程序本身及其相关子系统的性能,包括响应延迟、系统吞吐量、并发处理能力、系统稳定性等技术指标。主要的优化手段有使用缓存加速数据读取,使用集群提高吞吐能力,使用异步消息加快请求响应及实现削峰,使用代码优化手段改善程序性能。

  3.运维人员视角的网站性能

  运维人员更关注基础设施性能和资源利用率,如网络运营商的带宽能力、服务器硬件的配置、数据中心网络架构、服务器和网络带宽的资源利用率等。主要优化手段有建设优化骨干网、使用高性价比定制服务器、利用虚拟化技术优化资源利用等。

  性能测试指标

  不同视角下有不同的性能标准,不同的标准有不同的性能测试指标,从开发和测试人员的视角,网站性能测试的主要指标有响应时间、并发数、吞吐量、性能计数器等。

  1.响应时间

  指应用执行一个操作需要的时间,包括从发出请求开始到收到最后响应数据所需要的时间。响应时间是系统最重要的性能指标,直观地反映了系统的“快慢”。表4.1列出了一些常用的系统操作需要的响应时间。

  表1 常用系统操作响应时间表

  测试程序通过模拟应用程序,记录收到响应和发出请求之间的时间差来计算系统响应时间。但是记录及获取系统时间这个操作也需要花费一定的时间,如果测试目标操作本身需要花费的时间极少,比如几微秒,那么测试程序就无法测试得到系统的响应时间。实践中通常采用的办法是重复请求,比如一个请求操作重复执行一万次,测试一万次执行需要的总响应时间之和,然后除以一万,得到单次请求的响应时间。

  2.并发数

  指系统能够同时处理请求的数目,这个数字也反映了系统的负载特性。对于网站而言,并发数即网站并发用户数,指同时提交请求的用户数目。

  与网站并发用户数相对应的还有网站在线用户数(当前登录网站的用户总数)和网站系统用户数(可能访问系统的总用户数,对多数网站而言就是注册用户数)。其数量比较关系为:

  网站系统用户数>>网站在线用户数>>网站并发用户数

  在网站产品设计初期,产品经理和运营人员就需要规划不同发展阶段的网站系统用户数,并以此为基础,根据产品特性和运营手段,推算在线用户数和并发用户数。这些指标将成为系统非功能设计的重要依据。

  现实中,经常看到某些网站,特别是电商类网站,市场推广人员兴致勃勃地打广告打折促销,用户兴致勃勃地去抢购,结果活动刚一开始,就因为并发用户数超过网站最大负载而响应缓慢,急性子的用户不停刷新浏览器,导致系统并发数更高,最后以服务器系统崩溃,用户浏览器显示 “Service is too busy”而告终。出现这种情况,有可能是网站技术准备不充分导致,也有可能是运营人员错误地评估并发用户数导致。

  测试程序通过多线程模拟并发用户的办法来测试系统的并发处理能力,为了真实模拟用户行为,测试程序并不是启动多线程然后不停地发送请求,而是在两次请求之间加入一个随机等待时间,这个时间被称作思考时间。

  3.吞吐量

  指单位时间内系统处理的请求数量,体现系统的整体处理能力。对于网站,可以用“请求数/秒”或是“页面数/秒”来衡量,也可以用“访问人数/天”或是“处理的业务数/小时”等来衡量。TPS(每秒事务数)是吞吐量的一个常用量化指标,此外还有HPS(每秒HTTP请求数)、QPS(每秒查询数)等。

  在系统并发数由小逐渐增大的过程中(这个过程也伴随着服务器系统资源消耗逐渐增大),系统吞吐量先是逐渐增加,达到一个极限后,随着并发数的增加反而下降,达到系统崩溃点后,系统资源耗尽,吞吐量为零。

  而这个过程中,响应时间则是先保持小幅上升,到达吞吐量极限后,快速上升,到达系统崩溃点后,系统失去响应。系统吞吐量、系统并发数及响应时间之间的关系将在本章后面内容中介绍。

  系统吞吐量和系统并发数,以及响应时间的关系可以形象地理解为高速公路的通行状况:吞吐量是每天通过收费站的车辆数目(可以换算成收费站收取的高速费),并发数是高速公路上的正在行驶的车辆数目,响应时间是车速。车辆很少时,车速很快,但是收到的高速费也相应较少;随着高速公路上车辆数目的增多,车速略受影响,但是收到的高速费增加很快;随着车辆的继续增加,车速变得越来越慢,高速公路越来越堵,收费不增反降;如果车流量继续增加,超过某个极限后,任何偶然因素都会导致高速全部瘫痪,车走不动,费当然也收不着,而高速公路成了停车场(资源耗尽)。

  网站性能优化的目的,除了改善用户体验的响应时间,还要尽量提高系统吞吐量,最大限度利用服务器资源。

  4.性能计数器

  它是描述服务器或操作系统性能的一些数据指标。包括System Load、对象与线程数、内存使用、CPU使用、磁盘与网络I/O等指标。这些指标也是系统监控的重要参数,对这些指标设置报警阈值,当监控系统发现性能计数器超过阈值时,就向运维和开发人员报警,及时发现处理系统异常。

  System Load即系统负载,指当前正在被CPU执行和等待被CPU执行的进程数目总和,是反映系统忙闲程度的重要指标。多核CPU的情况下,完美情况是所有CPU都在使用,没有进程在等待处理,所以Load的理想值是CPU的数目。当Load值低于CPU数目的时候,表示CPU有空闲,资源存在浪费;当Load值高于CPU数目的时候,表示进程在排队等待CPU调度,表示系统资源不足,影响应用程序的执行性能。在Linux系统中使用 top命令查看,该值是三个浮点数,表示最近1分钟,10分钟,15分钟的运行队列平均进程数。如图4.2所示。

  图2 在Linux命令行查看系统负载

  性能测试方法

  性能测试是一个总称,具体可细分为性能测试、负载测试、压力测试、稳定性测试。

  性能测试

  以系统设计初期规划的性能指标为预期目标,对系统不断施加压力,验证系统在资源可接受范围内,是否能达到性能预期。

  负载测试

  对系统不断地增加并发请求以增加系统压力,直到系统的某项或多项性能指标达到安全临界值,如某种资源已经呈饱和状态,这时继续对系统施加压力,系统的处理能力不但不能提高,反而会下降。

  压力测试

  超过安全负载的情况下,对系统继续施加压力,直到系统崩溃或不能再处理任何请求,以此获得系统最大压力承受能力。

  稳定性测试

  被测试系统在特定硬件、软件、网络环境条件下,给系统加载一定业务压力,使系统运行一段较长时间,以此检测系统是否稳定。在不同生产环境、不同时间点的请求压力是不均匀的,呈波浪特性,因此为了更好地模拟生产环境,稳定性测试也应不均匀地对系统施加压力。

  性能测试是一个不断对系统增加访问压力,以获得系统性能指标、最大负载能力、最大压力承受能力的过程。所谓的增加访问压力,在系统测试环境中,就是不断增加测试程序的并发请求数,一般说来,性能测试遵循如图4.3所示的抛物线规律。

  图4.3中的横坐标表示消耗的系统资源,纵坐标表示系统处理能力(吞吐量)。在开始阶段,随着并发请求数目的增加,系统使用较少的资源就达到较好的处理能力(a~b段),这一段是网站的日常运行区间,网站的绝大部分访问负载压力都集中在这一段区间,被称作性能测试,测试目标是评估系统性能是否符合需求及设计目标;随着压力的持续增加,系统处理能力增加变缓,直到达到一个最大值(c点),这是系统的最大负载点,这一段被称作负载测试。测试目标是评估当系统因为突发事件超出日常访问压力的情况下,保证系统正常运行情况下能够承受的最大访问负载压力;超过这个点后,再增加压力,系统的处理能力反而下降,而资源消耗却更多,直到资源消耗达到极限(d点),这个点可以看作是系统的崩溃点,超过这个点继续加大并发请求数目,系统不能再处理任何请求,这一段被称作压力测试,测试目标是评估可能导致系统崩溃的最大访问负载压力。

  图3 性能测试曲线

  性能测试反应的是系统在实际生产环境中使用时,随着用户并发访问数量的增加,系统的处理能力。与性能曲线相对应的是用户访问的等待时间(系统响应时间),如图4.4所示。

  图4 并发用户访问响应时间曲线

  在日常运行区间,可以获得最好的用户响应时间,随着并发用户数的增加,响应延迟越来越大,直到系统崩溃,用户失去响应。

  性能测试报告

  测试结果报告应能够反映上述性能测试曲线的规律,阅读者可以得到系统性能是否满足设计目标和业务要求、系统最大负载能力、系统最大压力承受能力等重要信息,表4.2是一个简单示例。

  表2 性能测试结果报告

  性能优化策略

  如果性能测试结果不能满足设计或业务需求,那么就需要寻找系统瓶颈,分而治之,逐步优化。

  1.性能分析

  大型网站结构复杂,用户从浏览器发出请求直到数据库完成操作事务,中间需要经过很多环节,如果测试或者用户报告网站响应缓慢,存在性能问题,必须对请求经历的各个环节进行分析,排查可能出现性能瓶颈的地方,定位问题。

  排查一个网站的性能瓶颈和排查一个程序的性能瓶颈的手法基本相同:检查请求处理的各个环节的日志,分析哪个环节响应时间不合理、超过预期;然后检查监控数据,分析影响性能的主要因素是内存、磁盘、网络、还是CPU,是代码问题还是架构设计不合理,或者系统资源确实不足。

  2.性能优化

  定位产生性能问题的具体原因后,就需要进行性能优化,根据网站分层架构,可分为Web前端性能优化、应用服务器性能优化、存储服务器性能优化3大类。

  关于作者:

  李智慧,曾在阿里巴巴担任技术专家,参与阿里巴巴基础技术平台开发和www.alibaba.com架构设计。目前就职英特尔亚太研发中心从事云计算与大数据方面的研发工作。本文节选自《大型网站技术架构:核心原理与案例分析》一书,李智慧著,由电子工业出版社出版。


网站性能优化有哪些
  服务器的选择

  服务器关乎以后网站的发展,这点我是亲身体会,好的服务器让你无忧无虑,大可去做网站运营推广,而一个安全等等各方面做的不太好的空间,让你非常郁闷,几度奔溃,想起那些半夜起来要给服务器商打电话而无人应答的时候很是郁闷。所以这里建议大家选择一些有实力的公司,空间相对稳定的idc商,这样你可以省去很多的麻烦!

  网站制作

  网站制作我们需要注意以下几方面:

  源码的选择:现在市面上有非常多的成熟的代码,我们大可不必非要自己组建团队去大张旗鼓的写代码,论坛类:discuz、phpwind、bbsmax等都是不错的论坛程序,而且几乎所有的交互元素都有了,没有的可以利用其中非常方面的插件形式去做拓展。 CMS类:dedecms、帝国等都是经历多年的发展,许多优秀的程序员智慧的结晶。

  网站安装:配置服务器环境,大家可以搜索的学习学习,这里需要注意下,需要对网站的目录权限进行严格的控制,具体的安装过程,可以参照各个源码的说明去进行!

  网站结构的设计:这点比较重要,一个网站做出来,一定要有合理的结构布局,一方面提高用户体验,一方面方便搜索引擎蜘蛛爬行,很多源码虽然在这方面做了很多工作,但是还是要我们自己去重新设计处理,同质化的模板太多,很不利于网站优化,所以不管是导航还是其他什么方向都要重新修改,这点大家可以参考下百度SEO建议,参考修改。这里我们所要追求的就是代码精简代码,提高网页加载速度,尽可能的采用div+css结构,js类尽可能的放到网页底部,关于这类的文章是比较多的,大家可以检索下。

  关键字选择:这个关乎网站以后再能不能准确的展现给用户,能不能再搜搜引擎中取得好的排名,竞争激烈的关键词,会浪费你大量的时间,还不一定有好的成绩,所以这里的选择非常的关键,大家可以看看百度的web2.0优化建议,以便更好的发展。

  内容的建设:我们从近期百度的几次大的调整可以看出,也从官方的说明看出,提供高质量,尽可能是原创性的文章,不要搞采集和机器生成那类鬼都看不懂的文章,把内容展现给用户,而不是搜索引擎。

  url要标准化:url静态化,动态化的虽然可以抓取,但效果可能没有那么好。

  网站地图制作:网址地图是网站必备的东西,方便用户也方便搜索引擎的蜘蛛抓取

  robots.txt制作:对于那些不需要被抓取的可以用robots.txt文件限制,具体大家可以搜索robots.txt文件的写法。

  404页面的制作:对于已经删除的文章应该返回404状态,并添加404页面反馈给搜索引擎已经删除。还有其他细节方面的大家可以多看看相关的内容。
网站前端的性能优化与测试——内容过期

  最近在搞网站的界面UI改版,除了少数的几个页面外,全站基本统一了界面风格,在解决各种浏览器兼容问题的时候,不经意搜到一个FireFox的插件 YSlow for Firebug,他是开源的网站优化工具,用于测试网站的前端性能。在YSlow的评价性能等级上,有十三条规则:1. Make fewer HTTP requests,2. Use a CDN,3. Add an Expires header,4. Gzip components,5. Put CSS at the top,6. Put JS at the bottom,7. Avoid CSS expressions,8. Make JS and CSS external,9. Reduce DNS lookups,10. Minify JS,11. Avoid redirects,12. Remove duplicate scripts,13. Configure ETags。这是《Yahoo!网站性能最佳体验的34条黄金守则》中进一步精简的,现在先来讨论第3条,这是比较容易可以实现了的,只需配置一下iis 或者apache等web服务器,给http header 加上“内容过期”即可实现。考虑到网站正在改版,css、js还需要修改,这里分别给相关资源加上较合适的过期时间:1、image、flash 100天后过期;2、css、js 3天后过期。

  配置过程:在iis管理器中打开相关网站,找到需要设置的文件、文件夹,然后点击属性,在“http头”一项中即可设置。

  如果指定一个过期时间后,如 2008-12-26 14:26:00,则会在浏览器的http header received中会得到一个明确的过期时间:如Expires:Fir,26 Dec 2008 14:26:00 GMT,这是一个标准的GMT时间(格林尼治时间);如果指定100天后过期,header received则会收到Cache-Control:max-age=8640000(以秒来计算)。以上两个header received该指示浏览器缓存该请求的内容,并会在浏览器的临时缓存文件夹中保存该文件直至其到达过期时间(先不考虑浏览器因为缓存空间不足而自动清空缓存和用户清空缓存这些情况),Internet explorer 可以在 C:documents and SettingsAdministratorLocal SettingsTemporary Internet Files 文件夹找到这些缓存文件。在首次访问时,浏览器会根据Expires 和 Cache-Control是否缓存内容,第二次访问时,如果缓存的内容没有过期,则从缓存直接读取相关内容。还有一种情况,当用户点击刷新按钮时,不管是否缓存,浏览器都会从服务器新请求所有内容。

  使用 HttpWatch、yslow的测试过程:

  1、打开过期时间、第一次访问

网站前端的性能优化与测试——内容过期 三联

  (HttpWatch)

  (YSlow)

  2、打开过期时间、第二次访问

  (HttpWatch)

  (YSlow)

  3、打开过期时间,HttpWatch 两次访问结果比较

  4、没有打开过期时间、第一次访问

  5、没有打开过期时间、第二次访问

  6、没有打开过期时间,HttpWatch 两次访问结果比较

  测试的两次结果略有不同,但是我们可以看到,打开过期时间后第二次访问时,相关文件已经被缓存了,Sent、Received都没有产生通信流量,在 Result一项中显示的是Cache,很明显是从缓存中读取数据了。从第一次访问时的49个Request降低为 9个Request,请求时间与流量都明显减少。打开一个没有设置“内容过期”的网站,首次访问和第二次访问产生的http请求数没有任何改变,但 received也降低许多,这是由于第一次请求时,浏览器会在临将相关文件保存在临时文件夹,服务端会返回给客户端一个Last-Modified字段,以后每次需要这个文件的时候,客户端会把这个字段发送到服务端,服务端拿来和最新的文件做比较,如果没有被改变过,那么返回304 Not Modified,那么客户端就直接从缓存里面拿,所以产生的流量非常小,但是request并没有减少,如上面的第5点。

  经过这几次测试比较,可以看到缓存所起的重要作用。 另外在asp.net等程序中,也可以指定过期时间,如:Response.Expires = 3600,这样页面的text/html内容也一样会被缓存,如果数据库内容已经更改,在用户再次访问时,内容并不会更新,在过期时间之内,要获得最新内容可以手动刷新。如果程序中没用指定过期时间、Cache,数据库内容改变后,不管怎样访问网页(新开浏览器,后退),都会得到最新的内容。


如何优化橱柜类网站
我们都知道橱柜类的网站,由于自身产品价值大、艺术感强和产品差异等的特点,决定了其不能在网上直接销售,橱柜网站的建立的主要目的还是在建立品牌方面,所以橱柜类网站的优化不同于平常的B2C商城,而应该借鉴于B2B网站的优化策略,重视网站内部的每一个页面,注重内部链接,增加浏览者关注的页面数量,并且能把客户所需要的信息补全,这样将有利于增强目标客户的粘性,建立他们心中潜意识,吸引他们再次来访,总的说来,需要在几个方面进行优化, 效果会比较理想:
一 产品页面的优化:
众多的橱柜厂商现在的产品页面仅限于标题、产品名称的关键字堆砌,这是相当不合理的,因为这样一方面可能导致搜索引擎认作作弊,第二方面影响视觉效果,严重影响客户体验,其实关键字的布置有它特有的技巧,如我们可以在标题、Keyword、Description、图片属性、文本内容等方面添加,同时对关键字进行相应的加粗、黑体等处理,同样可以在增强关键字密度和区分度方面,获得良好的搜索引擎排名;
另外,橱柜厂商门过于注重产品页面的简洁,没有适当的加入如网上商城里面的相关产品推荐、客户评论、商家答疑等功能,缺少了和消费者的互动,当然也就无法拉近和目标客户的距离,吸引他们再次访问了,这同时也无形之中减少了网站的内链数。
二 网站内部链接的优化:
内部链接就是你提供给客户的导航,你希望客户进入网站后访问那些页面,这些都需要你的引导,如果目标客户进入网站后,无所是丛,,请大家想下除了立即退出网站还有其他的选择吗,解决这一问题,我们可以从三方面下手:一,自身网站的栏目规划上清晰、到栏目之间有比较大的区分度、栏目内部有高的相关度,栏目设置功能要求齐全;二是设置必要的网站地图,这是既对搜索引擎友好,又有利于客户访问必须采取的措施;三是在文本内页的关键字添加一定数量的内链,以引导目标客户访问网站重要页面。

三 网站外部链接的拓展

外部链接的权重在两大主流搜索引擎的排名所占的比例都比较大,没有更多的质量好的外链,你想获得良好的排名是不可能的,各大橱柜厂商应该打破封闭的、单独作战意识,积极的走向合作,建立共赢意识,增加在网站内容方面的合作,形成良性循环,积极的拓展公司网站的外链。
相信通过以上的优化后,众多的橱柜网站将有质的提高。目前,利澳克鲁尼正在进行网站的优化,欢迎同行访问本公司网站(www.kloly.com),进行深层次的交流!

以上是本人在利澳橱柜工作成果,属于原创,欢迎转载,转载请标明出处:何思茂

相关搜索

相似文章

网站性能优化 架构,优化网站性能架构提升用户体验 2020-12-29

网站性能架构及优化,优化网站性能架构提升用户体验 2020-12-29

网站架构和性能的优化,优化网站性能架构提升用户体验 2020-12-29

c 优化网站性能,优化网站性能架构提升用户体验 2020-12-29

网站升级优化 提升公司形象,优化网站性能架构提升用户体验 2020-12-29

大型网站架构和性能优化,关于大型网站架构问题 2020-12-29

大型网站架构及性能优化,关于大型网站架构问题 2020-12-29

网站建设:从架构层面提升用户体验的设置 2020-12-29

大型网站架构演进与性能优化,关于大型网站架构问题 2020-12-29

大型网站 架构演进与性能优化,大型网站架构模式有哪些 2020-12-29