质量属性-性能

定义

性能与时间有关。事件发生时,系统必须对其做出响应。事件到达和响应有很多特性,但性能基本上与事件发生时,将要耗费系统多长时间做出响应有关。

在使性能变得复杂的众多因素中,其中一个因素就是事件源的数量和到达模式。事件可以来自用户请求、其他系统或系统内部。到达模式可以分为周期性的、随机的或偶然性的。

可以用等待时间、处理期限、系统吞吐量、响应抖动(等待时间的变化)、缺失率(由于系统太忙因而无法做出响应所导致的未处理事件的数量)、数据丢失(因为系统太忙所丢失的数据)等指标来度量。

性能战术

性能战术的目标就是对在一定的时间限制内到达系统的事件生成一个响应。到达系统的可以是单个事件,也可以是事件流的形式,它是请求执行计算的触发器。它可以是消息的到达、定时器到时、系统环境中重要的状态变化的检测,等等。系统对事件进行处理并生成一个响应。性能战术控制生成响应的时间。等待时间是事件到达和对该事件生成响应之间的时间。

基本因素

  • 资源消耗
    资源包括CPU、数据存储、网络通信带宽和内存,但它也可以包括由设计中的特定系统所定义的实体。

  • 闭锁时间

    • 资源争用
      争用同一个资源的多个流或相同流中争用同一个资源的不同事件都会增加等待时间。一般而言,对一个资源的争用越多,就越有可能引入等待时间。然而,这取决于如何仲裁争用以及仲裁机制如何处理单个请求。

    • 资源的可用性
      即使没有争用,如果资源不可用,计算也无法进行下去。资源离线、组件故障或其他原因都会导致资源不可用。在任何情况下,设计师都必须确定资源不可用可能会导致急剧增加等待时间的位置。

    • 对其他计算的依赖性
      计算可能必须等待,因为它必须与另一个计算的结果同步,或者是因为它在等待它所启动的一个计算结果。

资源需求

事件流是资源需求的源。需求的两个特性是:资源流中的事件之间的时间;每个请求所消耗的资源是多少。

减少等待时间的一个战术就是减少处理一个事件流所需要的资源。

  • 提高计算效率
    处理事件或消息中的一个步骤就是应用某个算法。改进在关键的地方所使用的算法将减少等待时间。有时可以用一种资源换取另一种资源,这取决于时间和空间资源的可用性。

  • 减少计算开销
    如果没有资源请求,就可以减少处理需求。

减少等待时间的另一个战术就是减少所处理事件的数量。

  • 管理事件率
    如果可以降低监视环境变量处的取样频率,就可以减少需求。如果系统进行了超量设计的话,这样做是可行的,其他时候使用不必要的高采样率来建立多个流之间的和谐的周期。也就是说,某个流或事件流被过采样,以使它们可以被同步化。

  • 控制采样频率
    如果没有对外部生成的事件的到达进行控制,则可以用一个较低的频率对排队的请求进行采样,这可能会导致请求的丢失。

用于减少或管理需求的其他战术包括控制资源的使用。

  • 限制执行时间
    限制用多少执行时间对事件做出响应。有时这样做有意义,有时没有意义。对于迭代式、依赖于数据的算法,限制迭代的数量就是限制执行时间的一个方法。

  • 限制队列大小
    这控制了排成队列的到达事件的最大数量,因此控制了用来处理到达事件的资源。

资源管理

  • 引入并发
    如果可以并行处理请求,就可以减少闭锁时间。可以通过在不同的线程上处理不同的事件流或创建额外的线程来处理不同的活动集来引入并发。

  • 维持数据或计算的多个副本
    客户机-服务器模式中的客户机是计算的副本。使用副本的目的是减少在中央服务器上进行所有的计算时出现的争用。高速缓存是在不同速度的存储库或单独的存储库上复制数据的战术,目的是减少争用。因为被高速缓存的数据通常是现有数据的一个副本,因此使副本一致和同步就变成了系统必须承担的责任。

  • 增加可用资源
    速度更快的处理器、额外的处理器、额外的内存以及速度更快的网络都可能减少等待时间。

资源仲裁

当存在资源争用时,必须对资源进行调度。我们需要对处理器、缓冲器和网络进行高度安排。设计师的目标是理解每个资源使用的特性,并选择与之一致的调度策略。

  • 先进/先出
    FIFO队列同等看待对资源的所有请求,并依次对其进行处理。

  • 固定优先级调度
    固定优先级调度为每个请求资源的源分配一个特定的优先级,并按该优先级顺序分配资源。该策略能够确保为优先级较高的请求提供更好的服务,但是,对一些优先级较低但重要的请求来说,可能要等很长的时间才能得到服务,因为它前面有很多优先级较高的请求在等待提供服务。3个常见的优先级策略为:

    • 语义重要性
      每个流都根据生成它的任务的某个与领域特性被静态地分配一个优先级。

    • 时限时间单调
      时限时间单调是一种静态优先级分配,它将较高的优先级分配给具有较短时限时间的流。在调度的不同优先级流具有实时时限时间时,使用该调度策略。

    • 速率单调
      速率单调是周期流的一种静态优先级分配,它将较高的优先级分配给具有较短周期的流。该调度策略是时限时间单调的一种特殊情况。

  • 动态优先级调度

    • 轮转
      轮转是一种调度策略,它对请求进行排序,然后在允许的时候,把资源分配给该排序中的下一个请求。

    • 时限时间最早优先
      时限时间最早优先根据具有最早的时限时间的挂起请求来分配优先级。

  • 静态调度
    循环执行调度是一种调度策略,在该策略中,离线确定先占点和资源分配顺序。

总结

性能战术.png
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,905评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,140评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,791评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,483评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,476评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,516评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,905评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,560评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,778评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,557评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,635评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,338评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,925评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,898评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,142评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,818评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,347评论 2 342

推荐阅读更多精彩内容