ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

server端压力测试

2021-10-18 19:00:28  阅读:295  来源: 互联网

标签:压测 接口 server 机房 测试 压力 qps 使用率 cpu


server端压力测试

1 物料的提前准备工作

1.1 预估需要数据

如:需要多少个用户 = qps * 压测时长 (s为单位)

360w用户数据 = 1000qps * 360s
如:限时拉新红包请求时需要获取redis内的缓存 如果未发现缓存会报错
那么我们就需要提前构造数据 先通过开宝箱的方式来获取缓存 并且我们也要通过配置中台的配置来设置好前几个宝箱为能获取到redis的宝箱奖励

1.2预估接口需要的状态

是否有其他也业务方的状态依赖
如:助力次数增加/增加钥匙/新用户状态/初始化用户等等
因为需要模拟真是线上状态压测 所以需要提前准备符合线上状态的场景

1.3 预估依赖上游接口参数

压测接口需要依赖上一个接口的返回参数
如:开宝箱时需要获取home接口的宝箱位置来判断 进行效验 如果不符合db内的位置则无法开启宝箱进行下一步操作
这种情况需要接口并行请求

1.4 数据流转

当场景需要对qps进行分流时 就要用到接口的数据流转

2 qps

2.1 qps是什么

每秒请求访问次数

2.2 qps流量评估

1. 根据app的qps流量地图 到活动链路接入层qps入口推断

3 单接口压测

3.1 小流量压测

准备好压测数据后 可以先从500qps的小流量进行实验压测 下游依赖方是否可以获取到数据
在这里插入图片描述

3.2 阶梯示爬坡压测

小流量压测后 通过阶梯爬坡的方式 逐步升至峰值qps
如:4.5ww qps 初始1w 60s爬坡 每次爬1w 爬四次至峰值 持续60s
在这里插入图片描述

3.3 爬坡后持续峰值

当阶梯爬坡后没有问题时 就可以进行持续峰值压测
如:4.5w qps 初始5w 60s爬坡 持续360s
在这里插入图片描述

4 混合压测

4.1 双机房混合压测

正常情况下混合压测采用双机房

4.2 单机房混合压测

压测单机房目的是为了 如果其中一个机房出现问题 那么另一个机房可以承受住双机房带来的压力

5 压测或线上服务器挂了怎么办

5.1 限流

超压测流量会触发限流 给用户返回一个被限流的状态

5.2 切流

CDN运营商不可用/域名不可用/IP不可用

5.3 熔断降级

外部底层依赖挂掉或出现异常 会触发降级预案 各个依赖业务方会产出不同的降级预案

5.4 cpu报警扩容

当cpu内存过高时会触发报警 对cpu进行扩容处理

6 压测数据性能指标

6.1 p90 p95 p99 p995

接口耗时p99 前99%用户 p95 接口耗时前99.5%用户

6.2 错误码场景分析

根据错误码推断错误原因与问题类型

6.3 CPU使用率

在这里插入图片描述

1 cpu使用率越高 cpu的百分比性能越差 80%不等于两个40%
2 cpu使用率过高报警后会出现限流
3 cpu使用率过高处理方法 优化代码方法的处理逻辑 如果代码过于复杂 或者排期进度紧张 那么就只能通过扩容的方式来处理
4 单机房cpu使用率预期60%以内
5 双机房cpu使用率预期30%以内

6.4 内存使用率与内存使用量

在这里插入图片描述

内存使用率与cpu的指标类似 可以判断内存使用率多少 当前的内存使用量是多少

标签:压测,接口,server,机房,测试,压力,qps,使用率,cpu
来源: https://blog.csdn.net/weixin_44861659/article/details/120831776

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有