结束语 | 做真正的性能项目

你好,我是高楼。

到这里,我终于完成了第二个课程的编写和更新。我粗略统计了一下,这个课程的正文超过了18万字,环境搭建部分有9万多字,加起来总共有28万字左右,纯手工,无添加。

相比较上一个课程《性能测试实战30讲》,这个课程我感觉写得很辛苦,因为里面所有的案例都不是造出来的,而是我真正在面对一个未知的系统,把遇到的各种问题一个个进行分析得来的。

如果你学过上一个课程就会发现,我的重点是分析单个组件,想要把每个组件的分析逻辑都尽可能地给你讲明白,而各个章节之间其实并没有太多的关联分析,所以这并不足以支撑我们做好性能项目。

因为在一个实际的项目中,我们分析性能瓶颈,在大部分情况下靠分析单个组件是不会有证据链的,除非我们恰好分析到了有问题的组件。因此,从逻辑上来讲,只有关联分析,才能帮助我们形成更有效的思路。这也是为什么,我会在这个课程中用案例的形式,给你展示我整体的分析过程。

当然了,还有一个更重要的原因就是,帮你修炼“内功”。

做性能分析,一定要具备“内功”

我一直在强调,性能应该是一个工程级的活动。但是,现在很多企业都把它做成了测试阶段的一个任务。其结果就是,测试任务做完了,对系统能不能正常运行仍然没有底气;一旦系统上线,运维就陷入疲于奔命的状态,忙着处理各种源源不断的问题。

更要命的是,“测试”行业对工具的关注程度要远远大于性能目标,甚至忽略了自身分析能力的重要性。因此,很多人即使做了测试,也不清楚达没达到目标。这就像你有了倚天剑、屠龙刀,却没有内功,你终究发挥不出它的威力。但是,如果你有九阳神功傍身,那就不一样了,你不会再过分纠结于使用什么样的武器。

因此,在我的RESAR性能工程理念中,我想要告诉你的就是,做性能分析,一定要具备“内功”

那我们要具备什么样的内功呢?你看到下面这张性能分析优化技术图谱了吗?这个图谱中的技术就是我们要修炼的内功。

你可能会想,这些内容实在太多了,一个人怎么可能做得到?

我不知道你在冒出这个想法之前,有没有做过尝试和努力。其实,你只要在这个图谱中任选一个模块,然后再挑选其中一个技术组件,把它吃透,其他相似的技术组件大多能触类旁通。因为我们的重点是掌握背后的性能分析逻辑,而不是学会使用所有的工具。

就比如我们这个课程中最重要的两个技术逻辑:性能分析决策树和性能瓶颈证据链,这两个技术逻辑就是在教你怎么去思考,怎么去分析性能问题。如果你想学的是工具操作,那完全可以对着工具的手册自行修炼。

其实,对于基础知识和技术细节来说,不管你是看书还是学习课程,我觉得只有一个途径是进步最快的,那就是“动手实践”

而当下的现状是,大多数人只有在具体的工作中才会动手实践,不工作了就只看看资料。这也是为什么很多人看资料似乎都看懂了,但一动手就废。

就像有些人一边抱怨身上的肥肉长得快,一边又大吃大喝不运动。这样的人,完全是惰性使然,他们只有在真正的危害降临时,才会临时抱佛脚。人的惰性真是不可估量,且难以遏止。

可是你要知道,学习和思考是每一个人都不可逃避的过程,内功也不是突击几日就能练就的。只要我们开始,并且不间断地让自己进步,哪怕一天只学到一个知识点,那么在一段时间之后,我们就会战胜自己的惰性,享受到进步带来的快感。久而久之,那些庞杂的基础知识和技术细节也就烂熟于心了。

有了这些知识储备之后,紧接着你会面临这样一个问题:怎么把它们融会贯通?

这就要靠“思路”了,也就是这些知识在具体运用的过程中产生的方法论。这一点非常重要,因为如果这个阶段你不走过去,就只能永远停留在工具层面。

而我说的这个方法论,其实就是我在这个课程中想要告诉你的“RESAR性能工程”:

不过,你要记住,方法论只有落地才有价值,这也是为什么我在这个课程中,尽量把每一个细节都努力写出来,给你一个参考。

从性能目标反推性能工程的落地价值

在你修炼内功的同时,我也希望你能提升对性能的认知,真正明白性能项目的价值。

因为放眼望去,现在的性能市场真的是一片胶着的存在,就像《呼兰河传》中东二道街中央的大泥坑,纵然大部分人都知道泥坑的危害,除了深陷其中的人和热心帮忙的人在努力面对之外,其他人或拍手喝彩、或起哄架秧子,宁愿贴着路边的树根天天走,也没有人考虑去填这个坑。

这种现象非常普遍。在一个企业中,很少有人去计算性能问题导致了多少利润流失;也没有人去计算,因系统性能低下而产生的成本代价。有的企业甚至动用上万的CPU资源(每天的利用率只有不到5%)来维系着心里的安全感;也有的企业一遇到线上性能问题就气急败坏,但救火结束后仍不思悔改……而这些现象都源于对性能的认知不够。

可能有人会说,在性能上花费再多的人力和时间成本,也不能保证出成效。对!这才是关键!到底什么是成效?不就是给生产上的保证吗?性能给出业务容量的保证,才是真正的价值体现

而现实的情况是,大部分性能人员都做不到这一点,所以性能价值才会不断被轻视。最后,性能项目只能沦为交差的过场,上线的系统该怎么死还怎么死。

我之前评审一个性能标准的时候,开过几次专家组讨论会。会上,大家就“性能项目要不要做调优”这个问题争论不休。有人认为测试周期短,不需要做太多调优;有人认为要求性能工程师理解架构有点赶鸭子上架了;还有人认为性能测试就只是测试阶段中一个短暂的任务,不用过于吹毛求疵……

在这样的会议中,我默默听完了所有人的发言后,说:“我只提一个问题,如果你们能解决这个问题,就可以按你们的思路走。我的问题是,你们的思路可以明确给出系统最大容量是多少这个结论吗?”然后,大家突然都沉默了,会议室里安静得可怕。

这就是很多人对性能的认知。在他们的脑海里,这个结论是根本不可能实现的,因为他们一直从职位的能力范围来看性能这件事情。

如果我们从性能结论(目标)反推性能该如何做的时候,就可以明显地知道,性能不应该受到个人或固定团队的技术能力限制,而应该是从成本和利润损失的角度去思考如何做。

也正因为如此,我在编写那个性能标准的时候,毫不犹豫地加上了“调优”和“线上性能数据环比”的部分,让性能成为一个完整的闭环。

我们这个课程也正是基于这样完整的闭环思路,提出了RESAR性能工程方法论。在这套方法论中,我已经将我能想得到的角度都完整地阐述了。如果你觉得还不够清楚或不够完整,欢迎随时找我讨论。在不动手的范围内争论,我都是可以接受的。

蜕变,必须经历思维转变

在上一个课程上线之后,其实就有不少人找我讨论,说我颠覆了很多人对性能的认识,而且还触碰了一些人敏感的心理承受底线。于是,就有人雄纠纠气昂昂地想找我理论一下性能方法论的问题。

在我耐着性子听完那些漏洞百出的陈词老调之后,我告诉他:如果你能把一个按你说的方法论完全落地的项目展现到我面前,并且没有被问倒,同时又体现了你说的方法论的价值,那我觉得你就是对的;如果你没有这样做过,麻烦让一下,不要消耗我的网络流量。

说真的,我切身在一个个性能项目执行过程中做归纳总结,不是为了和人争论高下的,这种毫无意义并且子无虚有的虚荣心和满足感不是我所追求的。我希望的是,我的方法论能实际落地,并且能体现出性能项目的价值。要是只想提一个语不惊人死不休的话题来引起争论的话,我应该去学学西晋王衍,而不是在这干需要实践出真知的技术行业了。

从性能“测试”到性能“工程”的转变,是每一个做性能的人在蜕变的过程中,都必须经历的思维转变。而性能工程在落地中所体现出的技术价值和业务价值,才是在真正考验性能工程的具体可操作性,脱离了价值的考量终究只是一场虚枉。

在这个课程中,从性能方案、业务模型、场景、数据、环境,到具体的分析逻辑、并发计算、性能监控等一系列落地过程,就是我的性能工程理念想要表达的完整内容,也只有这样,才能帮助你做一个真正的性能项目。

总之,我希望学习这个课程的你,能仔细思考一下我的理念,至于它能发挥出的威力有多大,就要取决于你的基础功底了。也希望你能在不断实践的过程中,丰富自己的思维逻辑,做真正有价值的性能项目,不纠结,不盲从,不退不让,不卑不亢。

在课程的最后,我为你准备了一份结课问卷,希望你能花 1 分钟时间填写一下,我想听一听你对这门课的反馈。只要填写,就有机会获得一顶极简棒球帽或者是 价值 99 元的课程阅码。期待你的畅所欲言。

精选留言

  • zuozewei

    2021-06-07 10:02:40

    古人云:天助自助者,天道酬勤。哪怕你天资有限,机遇不足,现在还做不了“第一名”,但是只要每天进步,不断超越自我,那么你其实就是“成功者”。
  • Geek_xbye50

    2021-06-08 08:03:39

    这门课确实首先颠覆了自己对于性能测试的认知,再一个个丰富的案例及老师缜密又不失细节的排查对于作为一名开发的我不仅是经验上的积累,更是思维上的转变!感谢高老师
    作者回复

    多谢认可。多多交流。

    2021-06-08 10:56:52

  • 术子米德

    2021-06-07 15:52:43

    🤔☕️🤔☕️🤔
    没几个人学完课程,可惜了高老师这么多案例故事
    真正做开发的人都知道,能用心积累工作中的案例,能把这些案例变成可分享的知识,其价值远远超过100本教科书
    虽然我自己的工作,集中在嵌入式设备里的性能问题分析和解决,大部分都是要改进实现的优化。但是一点也不妨碍这门对我而言没有“实用价值”课程的深刻敬意👍👍👍
    知识不一定有用,更多是要受启发,高老师的案例积累和分享,就很受启发,再次感谢这么多实打实的案例故事
    作者回复

    这个留言太温暖了。
    多谢多谢。
    技术的思路有相通之处,我还会接着修炼。

    2021-06-07 17:57:53

  • sky_you

    2021-06-08 22:07:09

    一路看下来,补足了很多基础知识,让我对性能有了全新的认识!那么我来最后一个问题!老师,你的系统能支撑多少个并发?多少个在线用户?为什么呢?如何计算的!越详细越好!
    作者回复

    在报告那一篇中不是写了嘛。

    2021-06-09 11:34:01

  • evolution

    2021-08-13 15:14:33

    花了几天看完,酣畅淋漓,感觉打通了任督二脉(思想),现在只需要去练招式(工具使用)了
    作者回复

    对,对,对,我要表达的就是思想。哈哈。

    2021-08-16 09:19:05

  • 亚林

    2024-05-15 15:21:13

    中国古代教育,强调的是通性通达的教育,一通百通无所不通;现代西方教育,强调知识量,以量破法。算了,有限时间的人生,我还是选择一通百通吧!高老师,加油,我们的悟性实在有限,不过,通过高老师课程,确实打开性能工程一片新天地。看到只要市场资源足够,迟早性能工程,会从测试中走出来的。
    作者回复

    还有市场需求。所有能存活下来的方法都取决于市场需求。
    从现在的系统能正常运行为目标的市场来看,性能工程的需求量还不够大。
    所以我们有大量的费用都浪费在了基础设施和性能瓶颈上。

    2024-10-09 11:19:37

  • 魏秀玲

    2024-03-26 15:04:49

    学完了,但是还有很多内容一知半解,之后会再看一遍。关于业务指标和技术指标的计算,还有过程分析中一些技术点,需要再看看。
    很棒的课程
    作者回复

    多谢支持。

    2024-10-09 11:45:49

  • 梓沫

    2021-09-30 08:33:27

    感恩~
    作者回复

    感谢~

    2021-10-20 08:23:52

  • 公号-技术夜未眠

    2021-06-24 02:57:18

    昨天线上出现了一个整体,在5分钟内,数据库出现卡顿,在该数据库上的所有表操作上的所有sql写执行都出现慢操作,持续了5分钟左右,5分钟后又都恢复了正常。分析了半天,没有得出有效结论,请问老师可能是什么原因?谢谢老师
    作者回复

    这个?不能让我没数据就蒙。可以把数据发给我来分析。

    2021-06-24 07:41:58