高楼的性能工程实战课笔记-001-RESAR 性能工程

RESAR 性能工程,
    RESAR 性能工程是对性能项目过程中的各个具体的动作做更详细的描述,使之可以成为可以落地的具体实践。
    【性能测试】
    性能测试是针对系统的性能指标,建立性能测试模型,制定性能测试方案,制定监控策略,在场景条件之下执行性能场景,分析判断性能瓶颈并调优,最终得出性能结果来评估系统的性能指标是否满足既定值。
    性能项目是有宏观目标的:
        1. 找到系统中的性能瓶颈并优化掉;
        2. 满足业务容量的要求,保障线上系统可以正常运行。
        
    【性能工程】
    性能工程是指,通过分析业务逻辑和技术架构,创建性能模型,制定性能方案,准备应用环境,设计并实施性能部署监控,实现符合真实业务逻辑的压力,通过监控手段获取各组件的性能计数器,分析计数器采集出的数据,查找出性能瓶颈的根本原因并优化,最后通过环比生产环境的性能数据修正场景。
        我们要做好性能,就不能只局限在“测试”上,不能将它当成是一个项目中的某一环,我们需要用“工程”的视角来看待“性能”这件事儿。
        【环比】把线上的性能数据拿回来,和性能测试过程中的数据做环比,看之前做的是否满足真实的业务场景。而环比的内容就是我们的性能模型、性能指标等。
        性能工程一定要由一个职高言重的人来推动。具体的工作内容,由性能实施的人来承接就可以了。
    具体有以下几方面内容:
        1. 业务需求
            <1>. 分析可能出现性能问题的业务关键点,像业务路径、业务热点数据、秒杀业务、实时峰值业务、日结批量等。
            <2>. 创建出业务模型。
                    对于新系统来说,就算是拍脑袋也要给出业务模型;
                    如果是已有系统的业务模型,可以通过统计生产业务量的方式来得到。
        2. 立项
            <1>. 需要具备性能架构思维的人介入到立项环节中,在技术选型、架构设计层面给予专业的意见,来规避以后可能出现的性能问题。
                具体来讲,这位拥有性能架构思维的人需要:
                    做高可用、可伸缩可扩展、
                    负载均衡 SLB、
                    TCP 层优化、
                    DNS 优化、
                    CDN 优化等与性能相关并且是架构该干的事情。
                再细化一下,那就是各组件的
                    线程池配置、
                    连接池配置、
                    超时配置、
                    队列配置、
                    压缩配置等细节。
            <2>. 做容量评估、容量模型建立、容量水位模拟等模型建立。
        3. 研发
            【白盒测试】列出每一个方法在没有任何压力的情况下,它们的执行时间以及对象消耗的内存,以便后续做容量场景时做相应的计算。
            我们测试人员需要具备一定的技能。
        4. 测试
            按照
                基准场景(单接口、单系统容量场景)、
                容量场景(峰值、日结、秒杀、日常等场景)、
                稳定性场景
                异常场景
            的执行顺序,把前面所有和性能相关的工作都验证一遍。
            
实施 RESAR 性能工程的要点是:
    1. 通过分析业务逻辑和技术架构,创建性能模型,制定性能方案,准备应用环境,设计并实施性能部署监控;
    2. 实现符合真实业务逻辑的压力;
    3. 构建性能分析决策树,通过监控手段获取各组件的性能计数器;
    4. 分析计数器的数据查找出性能瓶颈的根本原因并优化;
    5. 通过环比生产环境的性能数据修正场景。
    
    对比全链路压测和devops
    【全链路压测】
    做线上全链路的目的,是为了通过使用生产环境中的架构、软硬件环境、数据、网络结构等等,来达到模拟真实业务压力场景的目标。
    【devops】
    DevOps 偏技术管理的角度,“左移”,“右移”,就是主动抢别人的活干

    【沟通】
    在性能工作中不管涉及到了什么职位或是什么背景的人,作为性能团队的人,在和别的团队沟通时:
    一定要把问题提得精确具体,把为什么要这样做,这样做的成本、好处,以及不这样做的坏处,都说明白就可以了。
        
    为性能结果负责需要三方面支持
        技术细节
            1. 我们的技术细节需要做到和线上一致,比如说软硬件环境、网络架构、基础数据、测试场景、监控部署等等
            2. 在一个性能团队中,自己的基础技能一定要能足够支撑起项目【=============努力飞升==========】。
        工作范围
            要对整个系统性能负起责任,性能测试人员的工作范围就需要扩大
            1. 要向前扩大到性能需求。一个性能需求,是由业务、架构、研发、测试、运维以及不懂技术的领导一起来定的
            2. 再向后扩大到运维过程。要把运维过程中的数据拿回来做环比,然后迭代我们的性能实施过程。
        工作权限
            1. 技术权限:主机登录 root、数据库 DBA 等权限。
            2. 指挥权限。开发运维的配合,我们在需要什么人做什么事情的时候,一定要能叫得动
            

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值