架构设计70-质量管理02-性能优化01-介绍

架构设计系列文章,请参见连接。

背景

性能优化是技术治理的一部分,也是体现出技术人员真正价值的工作。从经验来看对于性能优化的认识与过程了解影响着系统的可持续发展的能力,正因如此性能优化就决定了系统是否可以有序的发展为一个优良的系统。在性能优化过程中对于系统中瓶颈的识别以及解决就成了性能优化的需求与目标。

性能优化会有几篇文章,分别说明性能优化的不同的内容,包括:环境定义,测试策略,测试过程,测试工具,优化办法。而对于性能优化来说整体步骤可以简单的划分为:\color{red}{性能测试}->\color{red}{性能分析}->\color{red}{性能优化}

性能测试

性能优化过程中性能测试是发现问题的过程,是性能优化的先决条件。根据克努特优化原则:过早优化是万恶之源。在没有实际数据指导的情况下就开启优化过程是很不明智的过程,而且很容易方向跑偏。所以,必须在明确的数据作为支撑的情况下再开始进行性能优化过程。

虽然经常能够听到性能测试这个词,但是在这个词背后具体包含哪些内容,在未经过深入了解时也不可能一目了然的知道。这里就本着技术的深度决定着成就的高度的态度,重新挖掘一下性能测试的内容。

  • 性能测试定义

性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。

  • 性能测试分类

下面一段来自百度百科中《性能测试》。根据不同的测试目的,性能测试可以分为多种类型,常见的有如下几类:

  • 负载测试(Load Testing):负载测试是一种主要为了测试软件系统是否达到需求文档设计的目标,譬如软件在一定时期内,最大支持多少并发用户数,软件请求出错率等,测试的主要是软件系统的性能。

  • 压力测试(Stress Testing):强度测试也就是压力测试,压力测试主要是为了测试硬件系统是否达到需求文档设计的性能目标,譬如在一定时期内,系统的cpu利用率,内存使用率,磁盘I/O吞吐率,网络吞吐量等,压力测试和负载测试最大的差别在于测试目的不同。

  • 容量测试(Volume Testing):确定系统最大承受量,譬如系统最大用户数,最大存储量,最多处理的数据流量等。

  • 性能测试类型:

下面一段来自百度百科中《性能测试》。性能测试中包含以下测试类型:

  • 基准测试:比较新的或未知测试对象与已知参照标准(如现有软件或评测标准)的性能。

  • 争用测试:核实测试对象对于多个主角对相同资源(数据记录、内存等)的请求的处理是否可以接受。

  • 性能配置:核实在操作条件保持不变的情况下,测试对象在使用不同配置时其性能行为的可接受性。

  • 负载测试:核实在保持配置不变的情况下,测试对象在不同操作条件(如不同用户数、事务数等)下性能行为的可接受性。

  • 强度测试:核实测试对象性能行为在异常或极端条件(如资源减少或用户数过多)之下的可接受性。

  • 容量测试:核实测试用户同时使用软件程序的最大数量。

  • 性能评价:通常是和用户代表一起协作并且以多级方法执行的。

  • 性能指标

4.DevOps-4.度量指标--0.度量指标(Metrics)》中已经描述过指标体系的建立与使用过程,而针对性能来说指标几乎已经固定为几个特殊的指标。不过还是有很多性能指标可以为性能分析提供很多帮助,在度量指标中我们讨论过指标类型可以分为:

  1. Counter(计数器)
    请求次数等
  2. Gauge(测量器)
    瞬时内存占用情况,CPU使用情况等。
  3. Histogram(柱状图)
    响应时间等。
  4. Meters(码表)
    CPU Load数等。
  5. Timers(计时器)
    请求执行时长等。
  • 其他

  • 测试内容
    具像化测试内容,例如对于区块链交易频次测试,那肯定是对整个区块链系统中数据同步的过程进行测试。对IoT环境进行测试就要理清设备接入时使用的协议是那种,做通信的就要对于系统的整体交换速率作为系统性能表现。

  • 环境定义
    测试环境与被测环境的定义确定着要优化的范围。

性能分析

性能分析是针对性能测试结果数据或着性能测试过程数据进行分析已找到性能瓶颈的方法。在性能测试完成后不可分析就代表着不可以进行优化。故结果的可分析性至关重要。现在性能分析已经有了长足的进步,有很多现成的程序可以帮助进行性能分析的工作。而且还可以可视化的展示分析结果。不过有些时候仍然需要进行人工的分析工作。性能分析的主要目标是可视化。

在借助现阶段流行的《可观测性》的实现方式之后,性能分析过程可以分为两类:APM,事后分析类。APM可以得到运行期间的运行情况,而对性能测试结果进行分析可以得到整体用户直观感受。一般情况下会结合两种方式进行。


性能分析

性能优化

针对性能分析的结果进行优化,不管是找到业务问题还是技术问题都需要在这里输出相关的解决方案。在技术上有一些通用的调优方案,例如:阿里PTS上描述的性能测试 PTS > 性能测试基础知识 > 测试分析及调优,有赞的一次假期故障引发的性能优化思考

总结

本文最主要说明的内容是性能优化的步骤以及步骤中可能的内容,还有很多细节未明确出来。例如:通用性能指标体系TPCC、SPEC、SAP SD,性能分析过程中的分析方法,性能调优过程中的验证过程等,性能调优架构级别调优方法等等。这些都会在后面的文章中进行更详细的讨论。

参考

过早优化是万恶之源——克努特优化原则 (Knuth's optimization principle)
性能测试的概念
性能优化指南:性能优化的一般性原则与方法
常用性能测试指标解读与使用价值分析
一次假期故障引发的性能优化思考
【性能系列连载一】开篇:性能测试不可不知的“干货”
Web「性能测试」知多少?
性能分析
测试分析及调优

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

推荐阅读更多精彩内容