怎样做网站性能优化?

本文涉及的产品
传统型负载均衡 CLB,每月750个小时 15LCU
EMR Serverless StarRocks,5000CU*H 48000GB*H
应用型负载均衡 ALB,每月750个小时 15LCU
简介: 前言对于一个网站来说,优化是我们持续关注的话题,今天浅谈一下网站的性能优化。一、WEB前端性能优化1.1、浏览器访问优化1、减少HTTP访问请求HTTP协议是无状态的应用层协议,也就是每次请求都需要建立通信链路,进行数据传输,在服务器端,每个HTTP都需要启动独立的线程去处理,这样会严重影响服务器性能,也降低了响应速度,所以我们需要减少HTTP请求的数目可提高访问性能。

前言

对于一个网站来说,优化是我们持续关注的话题,今天浅谈一下网站的性能优化。

一、WEB前端性能优化

1.1、浏览器访问优化

1、减少HTTP访问请求

HTTP协议是无状态的应用层协议,也就是每次请求都需要建立通信链路,进行数据传输,在服务器端,每个HTTP都需要启动独立的线程去处理,这样会严重影响服务器性能,也降低了响应速度,所以我们需要减少HTTP请求的数目可提高访问性能。

减少HTTP的主要方式就是合并CSS、JavaScript、图片,将游览器一次访问需要的JavaScript、CSS合并成一个文件,多张图片合并成一张图片,这样就减少了HTTP的访问请求,达到了访问优化的效果。

2、使用游览器缓存

对于一个网站来说,Logo、CSS、JavaScript、图标这些静态资源更新的频率都很低,这些请求又是每次HTTP请求不可缺少的元素,所以可以根据HTTP头中Cache-Control和Expires的属性,设置游览器的缓存天数。

在某些时候,网站的静态资源文件需要做修改,此时对于没有做个优化的人来说肯定是修改完静态资源以后,然后缓存清掉(我之前在的公司就是这样做的,那时候技术真的很烂),对于一个并发大些的网站显然不能这样做,这会严重影响性能。合理的做法就是改变文件名实现。

3、启用压缩

在服务器端对文件进行压缩,减少传输的数据量,但是压缩会对服务器的性能带来一定的影响,如果带宽足够大,服务器资源不足的情况下要权衡考虑。

4、减少Cookie的传输

太多的Cookie会严重影响数据传输,所以哪些数据需要写入Cookie要慎重考虑,如CSS、Script等发送Cookie没有意义,可以考虑静态资源使用独立的域名访问。

1.2、使用CDN加速

CDN(内容分发网络)的本质也就是一个缓存,他能够将数据缓存到离用户最近的位置,使用户可以最快的获取数据,同时减少了数据中心的压力,所以使用CDN可以极大的提高用户访问速度。

1.3、使用代理服务器

来自互联网的访问都必须经过代理服务器,所以我们可以将一些热点信息缓存到代理服务器上,这样其他用户访问的时候,可以直接从代理服务器上获取数据,加速了WEB访问请求速度,减轻了WEB服务器的负载压力。此外使用反向代理可以实现负载均衡的功能,而通过负载均衡构建的应用集群,可以提高系统的总体处理能力,进而改善网站高并发下的性能。

二、应用服务器性能优化

应用服务器就是网站业务服务器,代码都部署在此,优化手段主要是缓存、集群、异步

2.1、使用缓存技术

现在用的最多的应该是Memcache,他使用libevent事件处理,所以性能较好,但是他不支持持久化,数据都保存在内存中,但是现在我们可以使用Couchbase集群,来保证数据的持久化。

2.2、异步操作

由上图看出来,在不使用消息队列的情况下,数据直接写入数据库中,在这高并发的情况下,会对数据库造成巨大压力,同时也导致响应延迟加剧。在使用消息队列情况下用户请求的数据发送给消息队列之后,立即返回,再有消息队列异步的写入数据库,因为消息队列的处理速度要远远大于数据库,因此用户的响应延迟可以得到有效改善。

2.3、使用集群

网站在高并发的情况下,使用负载均衡技术为一个应用构建一个由多台服务器组成的集群,将并发请求分发到多台服务器上处理,可以有效的避免单节点压力过大的情况。 

2.4、代码优化

劣质代码对服务器性能的影响也是蛮大的,曾经遇到过代码里面出现了死循环,导致系统负载过高,严重降低的服务器性能所以代码的优化很重要,可以从以下几个方面考虑

  1. 多线程
  2. 资源复用
  3. 垃圾回收

三、数据层

我们拿Mysql举例来说,无非就是读写,下面我们详细分析一下这两中情况

3.1、数据库读请求多(大多数网站遇到的情况)

  1. 增加服务器的内存,给数据库分配更多的内存
  2. 使用主从架构做读写分离降低单台数据库的压力,从库可以使用lvs做负载均衡
  3. 使用缓存系统来缓存数据库的热点信息,减少访问数据库的次数降低数据库压力

3.2、数据库写入较多

  1. 合理的使用Raid级别不过多数都是Raid10既保证了性能也保证了冗余
  2. 使用缓存较大的Raid卡
  3. 使用固态硬盘
  4. 将主库拆分,可以根据业务的耦合度做拆分
相关实践学习
Serverless极速搭建Hexo博客
本场景介绍如何使用阿里云函数计算服务命令行工具快速搭建一个Hexo博客。
相关文章
|
12天前
|
编解码 前端开发 JavaScript
揭秘!前端大牛们如何轻松实现网站性能优化,提升用户满意度!
【10月更文挑战第31天】在这个信息爆炸的时代,网站性能直接影响用户体验与满意度。前端开发者通过优化图片、减少HTTP请求、使用CDN和代码优化等策略,提升网页加载速度和运行流畅度,从而提高用户满意度。本文将揭秘前端大牛们的优化技巧,帮助你打造更优秀的网站。
26 4
|
6月前
|
运维 数据可视化 持续交付
如何解决技术债
本文介绍了技术债的概念及其影响。技术债是指在开发过程中因选择快速解决方案而非最优方法而产生的额外工作量。文章指出,技术债可能导致项目中出现如流水线失败、无用代码、难以理解的代码等问题。还强调了管理技术债的重要性,因为它会影响软件的交付速率和质量。有效的管理包括识别技术债、可视化问题、分析优先级、制定执行计划和持续改进。建议团队通过价值/成本矩阵来确定优先解决的技术债,并通过建立技术规范、服务责任人制度和持续关注技术趋势来预防和解决技术债。此外,应确保持续投入资源进行技术优化,并与团队和客户分享改进成果,以维持软件的高质量和稳定性。
210 1
|
JavaScript 前端开发 CDN
网站性能优化几个点 #27
网站性能优化几个点 #27
71 0
|
自然语言处理 搜索推荐 安全
想知道企业需不需要大热的Sitecore CMS,弄清楚这十点就够了!
毫无疑问对于企业来说,数字化转型是长期霸榜的热门话题。而这其中Sitecore又凭借着个性化数字体验、全渠道数据洞察、自动化数字营销成为了这一话题的中心。
171 0
|
前端开发 JavaScript
前端性能优化之企业项目实战篇(2)
前端性能优化之企业项目实战篇(2)
114 0
|
Web App开发 前端开发 测试技术
前端性能优化之企业项目实战篇(1)
前端性能优化之企业项目实战篇(1)
136 0
|
数据库 UED
婚恋系统源码开发,有这些需要注意的准则
在婚恋系统源码运行的所有链路中,没有绝对可靠的节点,任何一个节点都可能发生故障,影响系统服务和程序运行。
|
编解码 数据安全/隐私保护 UED
相亲源码开发必须知道和克服哪些问题
相亲源码的技术门槛没有那么高,但是想要搭建一个功能丰富、运行稳定、安全可靠的相亲系统并没有那么简单,需要强大的技术和丰富的相关经验,以及合理的问题解决策略。
|
Web App开发 XML 安全
技巧:你未必知道的IE8九大功能
微软为IE8赋予了不少新的功能,其中一个就是使得这些新功能的实现更加实用和简便。其中有很多优化功能,可能你没有完全留意到。不过,你完全不用去阅读那些详细的功能使用说明,我们在为你提供这些功能介绍的同时,还将补充一个微软都没有提到过的重要技巧——如何为IE8增添强大的广告过滤工具。
972 0
谈点杂的
人性弱点 1.男人好色 2.女人爱美 3.老人怕死 4.小孩贪玩 找到切入点,才能有好点子,但一定要用合法的手段
862 0