互联网大厂必学技能:压力测试!
本文收录在猪哥GitHub:https://github.com/pig6/Java 中,本项目收集一线大厂面试、实战、Java学习路线等。
压测全称为压力测试,是确立系统稳定性的一种测试方法,通常在系统正常运作范围之外进行,以考察其功能极限和隐患。
在开发接口或者功能点完成后,就需要对接口或功能点压力测试,测试出接口的极限以应对较大并发,举一个最直接的例子:淘宝双十一购物节,2018年淘宝交易创建峰值达到49.1万笔/秒,而在双十一之前淘宝都要对系统进行压测,看是否能够抗住每年创新高的并发!
大白话:不停地请求服务的接口,设置每秒的请求量以及持续时间,看看什么时候服务开始处理失败,从而得出服务的性能指标。
一、笔记目的
- 简单认识压测(的目的)
- 介绍压测平台应该有哪些能力
二、压测目的
- 挖掘系统瓶颈点
- cpu计算能力
- 业务代码(频繁full gc等)
- DB
- 线程模型
- 带宽等
- 建立性能基线
- qps (request per second)
- rt (response time)
- 用于线上扩容策略配置等
- 优化系统性能
- 配置DB主从
- jvm参数优化
- 缓存改造
- 线程模型改造等
三、压测平台应该具备的能力
1.压测场景
- rpc场景(一般为压测单个服务的性能)
- 回放录制的流量
- 自定义的流量
- http场景(一般为全链路压测)
- 回放录制的流量
- 自定义的流量
2.数据
准备数据用于压测的时候使用
- 录制任务
- http请求的录制
- rpc请求的录制
3.压测参数配置
- 压测类型
- 普通压测(普通循环播放流量)
- 调试(单次流量播放,一般用于调试链路是否接通)
- 递增(设置压测的多个阶段,每个阶段配置不同的qps以及持续时长)
- 配置
- 变量配置(单是流量录制是不够的,特殊的接口(比如关注行为)需要变化请求的参数,因此需要支持变量配置)
- 自增变量
- 设置起止值
- 设置步长
- 文件变量
- 读取变量列
- 时间变量
- 对当前毫秒戳做加减操作
- 计算变量
- uuid
- 区间random
- 预定义变量(就是写死一个值)
- 自增变量
- 请求配置
- 指定接口与方法/url
- 指定机器
- 超时时间
- 变量
- 指定配置好的变量
- 压测配置
- 初始qps
- 期望最大qps
- 词表配置
- 循环回放流量录制中的流量
- 资源隔离
- DB隔离
- 缓存隔离
- MQ隔离
- 静默期(那个时间段不可以进行压测)
- 变量配置(单是流量录制是不够的,特殊的接口(比如关注行为)需要变化请求的参数,因此需要支持变量配置)
4.保护策略
配置不同的监控项以及异常的处理策略:比如停止压测或者降低压测流量等
- db保护策略
- 配置db的告警阈值
- 告警之后自动降低指定的qps或者停止压测
- 配置db的告警阈值
- 机器保护策略
- 监控cpu gc 内存等等等等
- 降低qps或者停止
- 服务保护策略
- 监测请求的响应情况
- 降低qps或者停止
5.监控
配置不同的监控项用于判断性能瓶颈
- 客户端响应情况监控
- qps
- rt
- 错误率
- 服务端监控####
- 业务日志
- 机器
- cpu
- 线程池
- 服务接口等待队列大小等
四、压测报告
- 需要输出压测报告用于分析和记录
- 各个监控项的指标
- 压测结果的指标
- 等等
今天为大家简单列举了一些压测的知识点,以后有时间再为大家详细介绍哦,欢迎一键三连!!!
互联网大厂必学技能:压力测试!相关推荐
- 软件测试员必知!压力测试总共需要几个步骤?思路总结篇
在运维工作中,压力测试是一项很重要的工作.比如在一个网站上线之前,能承受多大访问量.在大访问量情况下性能怎样,这些数据指标好坏将会直接影响用户体验.今天我们就来深入了解下压力测试! 首先, 什么是压力 ...
- 软件测试压力测试步骤,软件测试员必知!压力测试总共需要几个步骤?思路总结篇...
在运维工作中,压力测试是一项很重要的工作.比如在一个网站上线之前,能承受多大访问量.在大访问量情况下性能怎样,这些数据指标好坏将会直接影响用户体验.今天我们就来深入了解下压力测试! 首先, 什么是压力 ...
- JAVA工程师必学技能,进阶涨薪的推进器!这份实战教程请收下
Netty 作为互联网中间件的基石,是 JAVA 工程师进阶为高级程序员必备的能力之一.也是目前是互联网中间件领域使用最广泛最核心的网络通信框架. Netty是一个高性能.异步事件驱动的NIO框架,它 ...
- Java程序员去BATJ一线互联网大厂需要哪些技能?
什么是BATJ 大家口中的BATJ,通常都是百度.阿里巴巴.腾讯.京东,那BATJ的技术专家相当于是腾讯T4技术专家.阿里P7高级技术专家级别,是一线Team leader或者二级域架构师,需要对一个 ...
- 艾肯4nano_Utrack_micu_mobile等声卡调试_网络主播防坑必学技能
小伙音频技术专业声卡调音师讲解关于艾肯声卡的调试与选用技巧,防坑必看!更多咨询也可关注声卡调试教程论坛 一: 4.6nano: Utrack: micu:mobile : Uporst2/ ...
- 互联网大厂必问之MySQL、Redis、Spring三大块,面试必备技术栈
前言 怎么样是不是感觉面试很难,不管是实习生还是有想要跳槽的大佬们都可以准备"金九银十"找工作的高峰期,在任何Java面试当中MySQL.Redis.Spring方面的问题都是必不 ...
- java成为移动互联网时代必学语言的六大理由
2019独角兽企业重金招聘Python工程师标准>>> 移动互联网到底是什么? 移动互联网的本质仍然是互联网,特点在于"移动"二字. 其实就是多了个客户端类型:手 ...
- Java高级编程细节-动态代理-进阶高级开发必学技能
关于代理模式的话题有很多, 在开发中经常用到的应该是静态代理模式,能很好的去耦合. 动态代理是代理模式的另外一种实现. 动态代理的区别在哪里? 动态代理有什么好处? 今天我们来分析下这些问题. 回顾静 ...
- NLP工程师必学技能,自然语言处理进阶手册
系列课程 基础入门:<自然语言处理通关手册> 实战进阶:<自然语言处理进阶手册> 2021 年,Google 一下 NLP 职位,你会发现有大量的相关搜索.实际上,世界各地各大 ...
最新文章
- Nginx配置文件nginx.conf详解(转)
- Vue团队核心成员开发的39行小工具 install-pkg 安装包,值得一学!
- 晚上我们一起去白码会所玩啊!
- php返回200,关于API 使用 HTTP 状态码还是全部返回 200
- HDU 3401 Trade dp+单调队列优化
- html怎么把新闻列表放在右边,div+css实现简洁、清晰的新闻列表样式(浮动使日期靠右)...
- 如何在Word中输入带圈数字1-10的黑底白字和白底黑字的数字字符?
- 10大优秀的移动Web应用程序开发框架
- 关于EN信号通过电阻分压的问题
- 梁宁增长思维30讲笔记 - 模式
- word怎么设置分栏 word设置分栏的方法
- 云服务器/树莓派搭建我的世界Minecraft多人游戏服务器
- 猫哥教你写爬虫 042--session的用法
- 想开发微信小程序分销商城需要做好哪些地方?
- 关于给hexo博客增加节日气氛主题切换(包括中国春节和圣诞节)
- ui界面颜色设计_界面设计ui的颜色基础
- 告别纸质化办公,OA系统为企业节能提效
- android app防止锁屏_android 屏幕保持不锁屏的实现方式
- 【VUE】【VUE-CLI】【bootstrap】【jeecgboot】干部任免表前端
- h3c路由器和三层交换机之间连接配置
热门文章
- java语言编程基础_Java编程基础02——Java语言基础
- CUDA out of memory. Tried to allocate 392.00 MiB (GPU 0; 10.76 GiB total capacity; 652.77 MiB alread
- 四十一、Vue项目上手 | 用户管理系统 实现用户修改和删除功能(完成篇)
- 九十二、Python爬取深圳租房信息小案例
- 二十八、Node.js中的RESTful API和接口设计
- 四、爬虫中的urllib库使用
- 直播 | WWW 2021论文解读:论解耦图卷积网络和标签传播的等价性
- 对话智能新高度:全面解读百度开放域对话模型PLATO
- 博士学位论文 | 机器阅读理解与文本问答技术研究
- 每周论文清单:对话系统综述,全新中文分词框架,视频生成,文字识别