压测场景设计和压测方案制定

举报
赵KK日常技术记录 发表于 2023/06/24 13:11:54 2023/06/24
【摘要】 本章内容根据《分布式服务架构》整理​1.业务模型分析2.压测执行3.压测工具4.小结业务模型分析对业务模型进行分析,选择日常请求量大且路径覆盖范围广的典型交易,建立测试业务模型,确定各接口请求量的对比。交易系统的四个接口,下单,下单查询,退款和退款查询,各个接口的比例依次为60%,37%,1%,2%。测试类型1.基准测试基准测试指单线程下对单接口的测试,主要调试测试脚本的正确性以及每个接口无...

本章内容根据《分布式服务架构》整理

1.业务模型分析

2.压测执行

3.压测工具

4.小结

业务模型分析

对业务模型进行分析,选择日常请求量大且路径覆盖范围广的典型交易,建立测试业务模型,确定各接口请求量的对比。

交易系统的四个接口,下单,下单查询,退款和退款查询,各个接口的比例依次为60%,37%,1%,2%。

测试类型

1.基准测试

基准测试指单线程下对单接口的测试,主要调试测试脚本的正确性以及每个接口无压力情况下每个请求的响应时间,//这个基本本地调试调用接口就可以测试,在于测试人员对接的时候能够调试不同环境下的响应时间。

2.容量测试

容量测试指检查系统能处理最大业务量,在测试过程中采用梯度加压的方式不断增加并发用户量,监控响应时间和系统资源的变化情况,响应时间曲线的拐点是业务量就是系统最大业务量//测试人员测试,时间较久

3.负载测试

负载测试用于测试单个接口在不产生任何错误的情况下能够提供的最佳的系统性能,从而得出单个接口在相应时间满足用户需求时的最大吞吐量和并发数。//负载测试在几十分钟内完成

4.混合业务测试

混合业务测试是按照业务流程要求对接口调用按照比例进行编排,并采用一定的测试加压方式进行加压,获取系统对业务流程的最大处理能力//几十分钟内完成

5.稳定性测试

按照混合测试的业务系统进行施加合理的压力,并持续一段时间。12-24小时完成

6异常测试

异常测试是指依赖服务中断,网络中断,硬件故障等异常情况下,系统对业务的影响情况。

加压方式

1.瞬间加压:通过测试工具模拟大量并发请求

2.逐渐加压:一定周期内为抛物线的趋势

3.梯度加压:逐渐增加用户并发量

4.确定延时方式

压测执行

观察系统的资源占用情况

/系统层面:CPU,内存,磁盘I/O,网络带宽,线程数,打开的文件句柄,线程切换,和打开的Socket数量

/接口的吞吐量,响应时间,超时情况等

/数据库的慢 SQL,SQL行读,锁等待,死锁,缓冲区命中,索引命中等

/消息队列的吞吐变化,响应时间,超时情况

/压测过程中记录压测记录

/分析是否满足既定压测目标

/指出系统存在的瓶颈点

压测工具:ab,jmeter,mysqlslap.sysbench,dd,LoadRunner,Hprof

我记得我整理了ab,jmeter的文章,但ab在哪忘记了,贴一下jmeter的链接Jmeter系统入门教程(安装、组件使用、Demo展示、连接数据库、压测报告)

现在根据书上hprof

测试环境windows,4CPU,8G内存

java -agentlib:hprof=cpu=times;interval=20;depth=3 com.kk.netty.HprofSample

demo

package com.kk.netty;

/**
 * @author zhaokkstart
 * @create 2020-02-10 19:24
 */
public class HprofSample {

    public void slowAction(){
        try {
            System.out.println("Action is run");
            Thread.sleep(1000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }

    }
    public void slowAction2(){
        try {
            System.out.println("Action2 is run");
            Thread.sleep(2000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }

    }

    public static void main(String[] args) {
        HprofSample hprofSample = new HprofSample();
        hprofSample.slowAction();
        hprofSample.slowAction2();
    }
}

容量和性能评估保证系统设计能够满足系统非功能质量需求,性能测试保证系统实施按照既定目标实现项目的非功能质量指标。

常用应用层性能指标参考

1.通用标准

容量按照峰值的5倍冗余计算

分库分表后的容量一般可以存储30年的数据

第三方查询接口吞吐量为5000/s

单条数据库记录大概占1KB

2.MySQL

单端口读写:1000/s

单端口写:700/s

单表容量:5000万条

3.数据库

读写数据库一条记录在毫秒级别,大于500ms一般认为超时

MySQL在4核心,256G内存的CPU中性价比最好

单线程处理

吞吐量=1s/响应时间

多线程

吞吐量=(1s/响应时间)*并发数

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。