大型站点技术架构(四)--站点的高性能架构

大型站点技术架构(一)--大型站点架构演化

大型站点技术架构(二)--架构模式

大型站点技术架构(三)--架构核心要素

 

站点性能是客观的指标,能够详细体现到响应时间、吞吐量、并发数、性能计数器等技术指标。

1、性能測试指标

1.1 响应时间

      指应用运行一个操作须要的时间,指从发出请求到最后收到响应数据所须要的时间。

例如以下列出了系统经常使用的操作响应时间表.

操作

响应时间

打开一个站点

几秒

数据库查询一条记录(有索引)

十几毫秒

机械磁盘一次寻址定位

4毫秒

从机械磁盘顺序读取1M数据

2毫秒

SSD磁盘顺序读取1M数据

0.3毫秒

从远程分布式换成Redis读取一个数据

0.5毫秒

从内存读取1M数据

十几微妙

Java程序本地方法调用

几微妙

网络传输2Kb数据

1微妙

 实践中计算响应时间一般是通过平均时间计算的平均值。

1.2并发数

    指系统可以同一时候处理的请求的数目。这个数字也反映了系统的负载性能。对于站点而言。并发数指站点用户同一时候提交请求的用户数目。
    站点系统用户数>站点在线用户数>站点并发用户数

1.3吞吐量

指单位时间内系统处理的请求数量。体现系统的总体处理能力。对于站点。可用“请求数/秒”或“页面数/秒”或“訪问人数/天”或“处理业务数/小时”等来衡量。
 TPS(每秒事物数)是吞吐量的一个经常使用量化指标。

刺猬还有HPS(每秒HTTP请求数)、QPS(每秒查询数)。

1.4性能计数器

指操作系统的一些数据指标如System load(系统负载),CPU使用率、内存使用率、磁盘等使用情况。
 

2、性能优化策略

依据站点分层架构,可分为Web前端性能优化、应用server性能优化、存储server性能优化。

2.1 Web前端优化

2.1.1 浏览器訪问优化

  • 降低HTTP请求数,主要可通过合并CSS,JavaScript、图片。
  • 使用浏览器端缓存。在某些时候。静态资源文件编写须要及时应用到client浏览器,这样的情况下,可通过改变文件名称来实现。

  • 启用页面压缩,文本文件的压缩效率可达80%以上。
  • CSS放在页面最上面,JavaScript放在页面最以下
  • 降低Cookie传输。能够考虑使用独立域名来发送Cookie等。

2.1.2 CDN加速

CDN的本质仍然是一个缓存。仅仅是部署在离用户近期的server上,一般缓存的都是静态资源。

2.1.3 反向代理

除了可以保护站点安全的作用以及负载均衡的作用外。反向代理还可以提供缓存作用(动态资源)。

2.2 应用server性能优化

应用server就是处理站点业务的server,站点的业务代码都部署在这里。主要优化手段有缓存、集群、异步等。

2.2.1 分布式缓存

缓存主要用来存放哪些读写比非常高、非常少变化的数据。


 分布式缓存指缓存部署在多个server组成的集群中,以集群方式提供缓存服务。其详细架构有两种,一种是以JBoss Cache伪代码的须要更新同步的分布式缓存, 一种是以Memcached为代表的不互相通信的分布式缓存


 Jboss Cache 的分布式缓存在集群中的全部server中保存同样的缓存数据。当某台server有缓存更新的时候,会通知集群中其它机器跟新缓存数据。长处是应用程序能够 从本地高速的获取缓存数据,但当集群规模较大的时候,缓存更新信息须要通过到集群全部机器。其代价可想而知。

 大型站点须要的缓存数据一般都非常大,可能会有TB的内存占用。这时候就的使用Memcached,是一中互不通信的架构,每台存储的缓存数据能够不一样。

2.2.2 异步操作

为了改善站点的扩展性。能够使用消息队列将调用异步化。

2.2.3 使用集群

在站点高并发訪问的情况下,使用负载均衡技术为一个应用构建一个由多台server组成的集群,将并发訪问请求分发到多台server上处理。 

2.2.4 代码优化

代码优化主要涉及多线程、资源复用(对象池或单例)、数据结构和垃圾回收。

2.3 存储性能优化

能够考虑使用分布式存储、openfiler、磁盘阵列、HDFS(Hadoop)。


原文地址:https://www.cnblogs.com/clnchanpin/p/6759356.html