怎样做网站性能优化?

毓秀清荷 2019-11-02

javascript css 性能优化 消息队列 服务器 性能 数据库 高并发 集群 负载均衡 多线程 前端性能优化 应用服务器 cookie

前言

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

一、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. 将主库拆分,可以根据业务的耦合度做拆分
登录 后评论
下一篇
云栖号资讯小编
1577人浏览
2020-04-07
相关推荐
SEM
1124人浏览
2017-10-05 15:46:00
SEO新时代刚开始
1085人浏览
2013-05-11 12:55:00
怎样避免网站过度优化
1029人浏览
2016-09-30 11:16:53
软件性能测试的本质
833人浏览
2017-07-10 15:34:00
网站底部应该怎样进行seo优化
3857人浏览
2017-12-15 15:51:12
怎样有效地推广APP
818人浏览
2017-11-14 20:41:00
SEO网站内容页优化技巧
812人浏览
2019-08-04 18:22:00
0
0
0
432