网站的高性能架构

性能测试指标

网站性能测试的主要指标有相应时间、并发数、吞吐量、性能计数器等

响应时间

测试程序通过模拟应用程序,记录发出请求到响应的时间差,当一般请求时间都不长,容易产生误差,因此一般是测试上万次请求时间的总和,然后算出响应时间的平均值。

并发数

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

吞吐量

指单位时间内系统处理的请求数量,TPS(每秒事务数)是吞吐量的一个常用量化指标,此外还有HPS(每秒HTTP请求数)、QPS(每秒查询数)等。

在系统并发数由小逐渐增大的过程中(这个过程也伴随着系统资源消耗越来越大),系统的吞吐量先是逐渐增加,达到一个极限后,随着并发数的增加反而下降,达到系统崩溃点后,系统资源耗尽,吞吐量为0。可以比喻成高速公路的通信状况,车辆数量代表并发数,车辆速度代表响应时间,单位时间收到的过路费为吞吐量。

性能计数器

他是描述服务器或者操作系统性能的一些数据指标。包括System Load、对象与线程数、内存使用、CPU使用、磁盘与网络I/O等指标。

 

WEB前端性能优化

浏览器访问优化

① 减少HTTP请求

HTTP协议是无状态的应用层协议,意味着每次HTTP请求都需要建立通信链路、进行数据传输,而在服务端,每个HTTP请求都需要启动独立的线程去处理。这些通信和服务的开销很昂贵。

减少HTTP请求的主要手段是合并CSS、合并JavaScript、合并图片。将浏览器一次访问需要的前端文件合成一个文件。这样能很大程度减少HTTP请求次数。

② 使用浏览器缓存

一般网站的静态资源更新频率都比较低,可以将其缓存到浏览器中,同时静态文件的更新需要及时应用到客户端浏览器,这种情况,可以通过修改文件名实现,并更新HTML文件中的引用。

③ 启用压缩

在服务器端对文件进行压缩,在浏览器端对文件解压缩,可有效减少通信传输的数据量。但是压缩对服务器和浏览器产生一定的压力。

④ CSS放在页面最上面、JavaScript放在页面最下面。

⑤ 减少Cookie传输

 

CDN加速、反向代理

CDN原理

 

应用服务器性能优化

分布式缓存

① 缓存原理

缓存的本质是一个内存hash表,利用hash表和内存的高速访问特性,可很好改善系统性能。

② 合理使用缓存

以下是一些不适合运用缓存的场景:

  • 频繁修改的数据

  • 没有热点的访问

以下是缓存可能产生的问题

  • 数据不一致与脏读

  • 缓存可用性

新启动的缓存系统如果没有任何数据,系统的性能和数据库负载都不太好,最好在缓存系统启动时就把热点数据加载好,这种手段叫做缓存预热。

如果遇到恶意攻击持续高并发的请求某个不存在的数据,由于缓存中没有该数据,所有请求都会落到数据库上并造成很大压力,一种应对措施就是将这种奇特的热点数据,即使是不存在的数据也缓存起来。

③ 分布式缓存架构

分布式缓存指缓存部署在多个服务器组成的集群中,以集群方式提供缓存服务。

Memcached采用一种集中式的缓存集群管理,也被称为互不通信的分布式架构方式。应用程序通过一致性hash算法选择缓存服务器远程访问缓存数据,缓存服务器之间不通信。这是因为这个特性,集群可以做到几乎无限制的线性伸缩。

异步操作

使用消息队列将调用异步化

使用集群

通过负载均衡技术将一个请求随机公平的分配到集群中的一台服务器进行处理。

代码优化

待写

 

存储性能优化

continue ......

 

此文主要参考《大型网站技术架构》一书的内容

 

 

你可能感兴趣的:(服务端,架构)