网站性能

news/2024/5/16 1:53:50/文章来源:https://blog.csdn.net/weixin_41790086/article/details/80540320
一、不同角度的网站性能
普通用户认为的网站性能
网站性能对于普通用户来说,最直接的体现就是响应时间。用户在浏览器上直观感受到的网站响应速度,即从客户端发送请求,到服务器返回响应内容的时间。

做为网站开发人员来说,网站性能通常会和普通的用户理解的不一样。
普通用户感受到的网站性能,并不只是由网站服务器决定的。它还包括客户端计算机和服务器通信的时间,网站服务器处理响应的时间,客户端浏览器构造请求解析响应数据的时间。甚至,不同的计算机性能、不同浏览器解析HTML的速度、不同网络运营商提供的网络带宽房屋的差异,这些都会导致用户感受到响应时间,可能大于网站服务器处理请求的时间。

开发人员认为的网站性能
开发人员关注的主要是服务器应用程序本身,以及相关配套系统的性能。包括并发处理能力、系统稳定性、响应延迟等技术指标。
对性能优化的主要手段,包括使用缓存加速数据读取,使用集群提高数据吞吐能力,使用异步消息加快请求响应,使用代码改善程序性能。

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

二、性能的指标
从开发人员的角度,网站性能的指标主要有并发量和响应时间。

并发量
并发数是指系统能够处理请求的数量,对于网站服务器而言,并发数也就是网站并发用户数,指同时提交请求的用户数目。
与并发数相对应的还有网站在线用户数(登录用户数)和网站用户数(一般指注册用户数)。他们的关系一般是:网站用户数>网站用户在线数>网站用户并发数

响应时间
响应时间是最重要的性能指标,直接反映了系统的快慢。

常见的系统操作响应时间

三、性能的优化
对于开发人员来说,网站性能优化一般包括Web前端性能优化、应用服务器性能优化、存储服务器性能优化三类。
Web前端性能优化

1、减少http请求 http协议是无状态的应用层协议,意味着每次http请求都需要建立通信链路、进行数据传输,而在服务器端,每个http请求都需要启动独立的线程去处理。减少http请求的数目可有效提高访问性能。
减少http的主要手段是合并CSS、合并javascript、合并图片。

2、使用浏览器缓存 对一个网站而言,CSS、javascript、logo、图标,这些静态资源文件更新的频率都比较低,而这些文件又几乎是每次http请求都需要的。如果将这些文件缓存在浏览器中,可以极好的改善性能。通过设置http头中的cache-control和expires的属性,可设定浏览器缓存,缓存时间可以自定义。

3、启用压缩 在服务器端对文件进行压缩,在浏览器端对文件解压缩,可有效减少通信传输的数据量。如果可以的话,尽可能的将外部的脚本、样式进行合并,多个合为一个。文本文件的压缩效率可达到80%以上,因此HTML、CSS、javascript文件启用GZip压缩可达到较好的效果。但是压缩对服务器和浏览器产生一定的压力,在网络带宽良好,而服务器资源不足的情况下要综合考虑。

4、CSS放在页面最上部,javascript放在页面最下面 浏览器会在下载完成全部CSS之后才对整个页面进行渲染,因此最好的做法是将CSS放在页面最上面,让浏览器尽快下载CSS。 Javascript则相反,浏览器在加载javascript后立即执行,有可能会阻塞整个页面,造成页面显示缓慢,因此javascript最好放在页面最下面。
应用服务器优化
应用服务器也就是处理网站业务的服务器,网站的业务代码都部署在这里,主要优化方案有缓存、异步、集群等。

1、合理使用缓存
当网站遇到性能瓶颈时,第一个解决方案一般是缓存。在整个网站应用中,缓存几乎无处不在,无论是客户端,还是应用服务器,或是数据库服务器。在客户端和服务器的交互中,无论是数据、文件都可以缓存,合理使用缓存对网站性能优化非常重要。
缓存一般用来存放那些读写次数比较高,变化较少的数据,比如网站首页的信息、商品的信息等。应用程序读取数据时,一般是先从缓存中读取,如果读取不到或数据已失效,再访问磁盘数据库,并将数据再次写入缓存。
缓存的基本原理是将数据存储在相对有较高访问速度的存储介质中,比如内存。一方面缓存访问速度快,另一方面,如果缓存的数据是需要经过计算处理得到的,那使用缓存还可以减少服务器处理数据的计算时间。
使用缓存并不是没有缺陷:内存资源是比较宝贵的,不可能将所有数据都缓存,一般频繁修改的数据不建议使用缓存,这会导致数据不一致。
网站数据缓存一般遵循二八定律,即80%的访问都在20%的数据上。所以,一般将这20%的数据缓存,可以起到改善系统性能,提高服务器读取效率。

2、异步操作
使用消息队列将调用异步化,可以改善网站系统的性能。
在不使用消息队列的情况下,用户的请求直接写入数据库,在高并发的情况下,会对数据库造成非常大的压力,也会延迟响应时间。
在使用消息队列后,用户请求的数据会发送给消息队列服务器,消息队列服务器会开启进程,将数据异步写入数据库。消息队列服务器的处理速度远超过数据库,因此用户的响应延迟可得到改善。
消息队列可以将短时间内的高并发产生的事务消息,存储在消息队列中,从而提高网站的并发处理能力。在电商网站的促销活动中,合理使用消息队列,可以抵御短时间内用户高并发的冲击。


3、使用集群
在网站高并发访问的情况下,使用负载均衡技术,可以为一个应用构建由多台服务器组成的服务器集群,将并发访问请求,分发到多台服务器上处理,避免单一服务器因负载过大,而导致响应延迟。

4、代码优化
网站的业务逻辑代码主要部署在应用服务器上,需要处理复杂的并发事务。合理优化业务代码,也可以改善网站性能。
任何web网站都会遇到多用户的并发访问,大型网站的并发用户会达到数万。每个用户请求都会创建一个独立的系统进程去处理。由于线程比进程更轻量,占用资源更少,所以,目前主流的web应用服务器都采用多线程的方式,处理并发用户的请求,因此,网站开发多数都是多线程编程。
使用多线程的另一个原因是服务器有多个CPU,现在手机都到了8核CPU的时代,一般的服务器至少是16核CPU,要想最大限度的使用这些CPU,必须启动多线程。
那么,启动多少线程合适呢?
启动线程数和CPU内核数量成正比,和IO等待时间成正比。如果都是计算型的任务,那么线程数最多不要超过CPU内核数,因为启动再多,CPU也来不及调用。如果任务是等待读写磁盘、网络响应,那么多启动线程会提高任务并发度,提高服务器性能。
或者用个简化的公式来描述:
启动线程数 = (任务执行时间/(任务执行事件 - IO等待时间)) * CPU内核数

5、存储优化
数据的读写是网站处理并发访问的另一瓶颈。使用缓存虽然可以解决一部分数据读写压力,但很多时候,磁盘仍然是系统最严重的瓶颈。而且磁盘是网站最重要的资产,磁盘的可用性和容错性也至关重要。
机械硬盘和固态硬盘 机械硬盘是目前最常用的硬盘,通过马达带动磁头到指定磁盘的位置访问数据,每次访问数据都需要移动磁头,在读取连续数据和随机访问上,磁头移动的次数相差巨大,因此机械硬盘的性能表现差别巨大,读写效率较低。而在网站应用中,大多数数据的访问都是随机的,在这种情况下,固态硬盘具有更高的性能。但目前固态硬盘在工艺上、数据可靠性上还有待提升,因此固态硬盘的使用尚未普及,从发展趋势看,取代机械硬盘应该是迟早的事情。
       
      
 总结:
网站性能优化的主要内容是改善高并发用户访问情况下的网站响应速度,最终目的是改善用户的体验。但性能优化本身也是需要综合考虑的。比如说,性能提高一倍,服务器数量也要增加一倍,这样的优化是否可以考虑?
技术是由业务驱动的,离开业务的支撑,任何性能优化都是空中楼阁。

联系方式

QQ:1217675462

欢迎交流

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_872441.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网站埋点(百度统计)

网站埋点,看数据分析,可以直接用百度统计,功能非常全,自己重新开发一个的话,费时费力,没必要。 https://tongji.baidu.com/web/welcome/basic demo演示 使用教程 1、注册登录 2、登录后新增你的网站 …

CTF Crypto/MISC 在线工具网站

2020.4.2 增加了新佛曰的网站 2020.4.6 添加了Linux系统调用网站 2020.5.25 增加了base58的编码网站,跳舞小人密码,alphabet minimoys密码网站,JS混淆解密网站 在线解码 Unicode(HTML)编码解码:http://www…

houseoforange_hitcon_2016(House of orange, unsorted bin attack,FSOP)

目录 题目分析利用原理house of orangeFSOP 漏洞利用Exp 题目分析 只有添加,显示,编辑三个功能,没有删除 添加函数,最多只能添加四次,每次添加会依次执行malloc(0x10),malloc(name_size),calloc(8),name_size最大为8 H…

javabean+servlet+JSP页面做购物网站 (附效果图+源码)

一个简单的jsp购物网站 概要需求用到的技术效果图登录页登陆结果购物页消费记录页管理用户信息和商品信息数据库格式 踩过的坑jdbc进行数据库操作java动作指令结合jsp脚本jdbc操作数据库查某个变量源码 概要 复习一下学校里学的javabean,写了个简单的购物网站&…

用asp.net写的一个购物网站

文章目录 一、数据库设计二、登录注册三、功能说明以及运行1.首页2.商品分类3.热门零食4.推荐零食5.商品详情页6.我的购物车7.立即购买8.提交订单 总结 一、数据库设计 二、登录注册 1.登录界面 2.注册界面 首先先在数据库表users中插入几条数据,表示这是已经注册…

用前端写的一个网站

文章目录 一、网站首页1.导航栏2.轮播图3.网格系统 二、热门人物三、热门推荐四、国产动漫五、热血日漫六、个人资料设置七、注册登录总结 一、网站首页 1.导航栏 采用了bootstrap导航条组建。用超链接实现跳转。并同时使该网页对应的导航条处于被选中的状态。当鼠标悬停放在该…

基于ASP.Net写的一个购物网站

网站运行录像 在这里 链接:https://pan.baidu.com/s/1NaFNKnQ3UEorasadRf7EIA 提取码:1i6v 复制这段内容后打开百度网盘手机App,操作更方便哦 可以下载观看。 本网站前端利用了如下技术&a…

springboot实现基本购物网站

本项目部分页面来自天天生鲜项目(原项目使用django编写),本项目中所用到的框架: spring boot mybatis jpa bootstrap redis freemaker 实现注册及登录界面: 用户名需满足:非空,长度2-20位. 密码需满足:为6-20位字母、数字的组合. 卖家与买家信息使用不同的数据…

HTML+CSS简单应用实例——购物网站的制作(一)

HTMLCSS简单应用实例——购物网站的制作(一) 这是一个用CSS、HTML、JS制作的简单的购物网站,这篇文章是主页,在后面文章中依次有登录页、商品页、客服页面等。有很多不足之处,希望大家能给我指出来。 先看一下效果图…

HTML+CSS简单应用实例——购物网站的制作(二)注册页面

HTMLCSS简单应用实例——购物网站的制作(二)注册页面 接上一篇文章,本片文章是注册页面。 下面是效果图: 分析:上方欢迎注册是DIV,下面是表单,点击登录按钮会出现注册成功提示。下方为脚本,同…

HTML+CSS简单应用实例——购物网站的制作(三)

HTMLCSS简单应用实例——购物网站的制作(三) 本页面是商品页面。 下面是效果图: 分析:上方大牌女装为DIV,下面是一个滚动图,年度爆款限时五折是table,今日热门活动也是一个大table&#xff…

HTML+CSS简单应用实例——购物网站的制作(四)

HTMLCSS简单应用实例——购物网站的制作(四) 本页面是第二个商品页面,做了个限时抢购的页面。 下面是效果图: 分析:上方限时抢购和12点准时开抢是两个DIV,下面每个商品是一个单独的DIV,总体是一个大的D…

HTML+CSS简单应用实例——购物网站的制作(五)

HTMLCSS简单应用实例——购物网站的制作(五) 本页面是第三个商品页面。 下面是效果图: 分析:上方淘淘超市是一个DIV,下面超值套装每个商品是一个DIV,美容护肤是一个大表格。下面是脚本。 具体代码&…

HTML+CSS简单应用实例——购物网站的制作(六)

HTMLCSS简单应用实例——购物网站的制作&#xff08;六&#xff09; 本页面是一个反馈问卷页面。 效果图&#xff1a; 代码&#xff1a; <!DOCTYPE html> <html><head><meta charset"UTF-8"><title>淘淘网问卷</title><s…

HTML+CSS简单应用实例——购物网站的制作(七)

HTMLCSS简单应用实例——购物网站的制作&#xff08;七&#xff09; 本页面是客服页面。 效果图&#xff1a; 分析&#xff1a;上方是一个DIV&#xff0c;下面是两个表格&#xff0c;表格里有列表。 具体代码&#xff1a; <!DOCTYPE html> <html><head>&…

专访AJAX发明人:AJAX并不适合所有网站

他从未想到AJAX可以获得这么大的成功&#xff0c;但他也表示并非所有的网站都适合用AJAX技术。 新浪科技讯 2007年3月2日&#xff0c;中国互联网协会与Google(谷歌)公司联合主办“Internet 互联网世纪论坛”&#xff0c;AJAX技术的发明人Jesse James Garrett在会议期间接受新浪…

一步步构建大型网站架构

之前我简单向大家介绍了各个知名大型网站的架构&#xff0c; 亿万用户网站MySpace的成功秘密 、 Flickr架构 、 YouTube网站架构 、 PlentyOfFish 网站架构学习 、 WikiPedia技术架构学习笔记 。这几个都很典型&#xff0c;我们可以从中获取很多有关网站架构方面的知…

从上百幅架构图中学大型网站建设经验(上)

从上百幅架构图中学大型网站建设经验&#xff08;上&#xff09; 引言 近段时间以来&#xff0c;通过接触有关海量数据处理和搜索引擎的诸多技术&#xff0c;常常见识到不少精妙绝伦的架构图。除了每每感叹于每幅图表面上的绘制的精细之外&#xff0c;更为架构图背后所隐藏的设…

Apache中如何设置网站默认首页?

环境: 1)WIN2003(X86)阿里云ECS 2)apache2.2(启用vhosts.conf) 步骤: 1)打开apache\conf\extra\httpd-vhosts.conf 2)在 VirturalHost标签对中输入DirectoryIndex index.php //index.php即为网站默认首页 <VirtualHost *:80>DocumentRoot D:\www\abcServerName www.…

如何移植DEDE网站?WIN2WIN.

假设网站从 A服务器(siteA) 转移到 B服务器(siteB). 遵以下步骤即可: A.备份 1)到www.dedecms.com下载全新版本siteB 尽量与siteA保持一致 3)在服务器上正常安装siteB 4)备份siteA的数据库 /data/backupdata / 系统>>数据库备份/还原>>全选/提交 5)备份siteA…