Skip to content
Go back

后端性能优化相关

Published:  at  06:33 AM

文章目录

网站性能优化

  1. 响应时间
  2. 并发数量
  3. 吞吐量 TPS(每秒事务数)、HPS(每秒Http请求数)、QPS(每秒查询数,)

性能计数器

常用的性能计数器有:

性能测试的几个参考点:

缓存

  1. 缓存的本质 缓存的本质就是一个内存Hash表,数据以一对KeyValue键值对存储在内存Hash表中。主要用于存放读写比很高、很少变化的数据,网站数据通常遵循“二八定律”,即80%的访问落在20%的数据上,因此,将这20%的数据缓存起来,可以很好的改善系统性能。

  2. 合理使用缓存 合理的使用缓存对提高系统性能有很多好处,但是不合理的使用缓存反而会成为系统的累赘甚至风险。滥用缓存的三种情况如下:

  1. 缓存雪崩 缓存雪崩我们可以简单的理解为:由于原有缓存失效,新缓存未到期间(例如:我们设置缓存时采用了相同的过期时间,在同一时刻出现大面积的缓存过期),所有原本应该访问缓存的请求都去查询数据库了,而对数据库CPU和内存造成巨大压力,严重的会造成数据库宕机。从而形成一系列连锁反应,造成整个系统崩溃。 该类问题的解决方式主要有三种:
  1. 缓存穿透
  1. 缓存预热
  1. 分布式缓存架构 分布式缓存是指缓存部署在多个服务器组成的集群中,以集群方式提供缓存服务,其架构方式有两种:

异步

使用异步操作,可以大幅度改善网站的性能,使用异步的两种场景,高并发、微服务;

任何可以晚点的事情都应该晚点再做。

集群

在网站高并发访问的场景洗下,使用负载均衡技术为一个应用构建一个由多台服务器组成的服务器集群,可以避免单一服务器因负载压力过大而响应缓慢。常用的负载均衡技术有以下几种:

代码优化

网站的业务逻辑实现代码主要部署在应用服务器上,合理的优化代码也可以很好的改善网站性能。几种常用的几种代码优化方式:

存储优化

在网站应用中,海量是的数据读写对磁盘访问会造成一定的压力,虽然可以通过Cache解决一部分数据读压力,但是很多时候,磁仍然是系统最严重的瓶颈。

机械硬盘VS固态硬盘

B+树 VS LSM树

目前很多NoSQL产品采用LSM树作为主要的数据结构,LSM树可以看做是一个N阶合并树,数据的写操作都在内存中完成,并且都会创建一个新记录,这些数据在内存中仍然还是一颗排序树。在需要读的时候,总是从内存中的排序树开始搜索,如果没有找到,就从磁盘的排序树中查找。

在LSM树上进行一次数据更新不需要磁盘访问,在内存中即可完成,速度远快于B+树,当数据访问以写操作为主,而读操作则集中在最近写入的数据上时,使用LSM树可以极大程度的减少磁盘的访问次数,加快访问速度。



Previous Post
Npm常用命令
Next Post
Nodejs简易服务器