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


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

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

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

     

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

    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)。


  • 相关阅读:
    第一章 002-JDK的安装
    第一章 001-初识Java
    计算2^4000内数字0到9的分布
    1027 大数乘法
    1005 大数加法
    哈夫曼编码
    new: Set up a window
    GLFW扩展库
    outdated: 3.Adding Color
    简单的图元
  • 原文地址:https://www.cnblogs.com/clnchanpin/p/6759356.html
Copyright © 2020-2023  润新知