本文收录在猪哥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或者停止压测
  • 机器保护策略
    • 监控cpu gc 内存等等等等
    • 降低qps或者停止
  • 服务保护策略
    • 监测请求的响应情况
    • 降低qps或者停止

5.监控

配置不同的监控项用于判断性能瓶颈

  • 客户端响应情况监控

    • qps
    • rt
    • 错误率
  • 服务端监控####
    • 业务日志
    • 机器
      • cpu
      • 线程池
      • 服务接口等待队列大小等

四、压测报告

  • 需要输出压测报告用于分析和记录

    • 各个监控项的指标
    • 压测结果的指标
    • 等等

今天为大家简单列举了一些压测的知识点,以后有时间再为大家详细介绍哦,欢迎一键三连!!!

互联网大厂必学技能:压力测试!相关推荐

  1. 软件测试员必知!压力测试总共需要几个步骤?思路总结篇

    在运维工作中,压力测试是一项很重要的工作.比如在一个网站上线之前,能承受多大访问量.在大访问量情况下性能怎样,这些数据指标好坏将会直接影响用户体验.今天我们就来深入了解下压力测试! 首先, 什么是压力 ...

  2. 软件测试压力测试步骤,软件测试员必知!压力测试总共需要几个步骤?思路总结篇...

    在运维工作中,压力测试是一项很重要的工作.比如在一个网站上线之前,能承受多大访问量.在大访问量情况下性能怎样,这些数据指标好坏将会直接影响用户体验.今天我们就来深入了解下压力测试! 首先, 什么是压力 ...

  3. JAVA工程师必学技能,进阶涨薪的推进器!这份实战教程请收下

    Netty 作为互联网中间件的基石,是 JAVA 工程师进阶为高级程序员必备的能力之一.也是目前是互联网中间件领域使用最广泛最核心的网络通信框架. Netty是一个高性能.异步事件驱动的NIO框架,它 ...

  4. Java程序员去BATJ一线互联网大厂需要哪些技能?

    什么是BATJ 大家口中的BATJ,通常都是百度.阿里巴巴.腾讯.京东,那BATJ的技术专家相当于是腾讯T4技术专家.阿里P7高级技术专家级别,是一线Team leader或者二级域架构师,需要对一个 ...

  5. 艾肯4nano_Utrack_micu_mobile等声卡调试_网络主播防坑必学技能

    小伙音频技术专业声卡调音师讲解关于艾肯声卡的调试与选用技巧,防坑必看!更多咨询也可关注声卡调试教程论坛 一:  4.6nano:  Utrack:  micu:mobile   :  Uporst2/ ...

  6. 互联网大厂必问之MySQL、Redis、Spring三大块,面试必备技术栈

    前言 怎么样是不是感觉面试很难,不管是实习生还是有想要跳槽的大佬们都可以准备"金九银十"找工作的高峰期,在任何Java面试当中MySQL.Redis.Spring方面的问题都是必不 ...

  7. java成为移动互联网时代必学语言的六大理由

    2019独角兽企业重金招聘Python工程师标准>>> 移动互联网到底是什么? 移动互联网的本质仍然是互联网,特点在于"移动"二字. 其实就是多了个客户端类型:手 ...

  8. Java高级编程细节-动态代理-进阶高级开发必学技能

    关于代理模式的话题有很多, 在开发中经常用到的应该是静态代理模式,能很好的去耦合. 动态代理是代理模式的另外一种实现. 动态代理的区别在哪里? 动态代理有什么好处? 今天我们来分析下这些问题. 回顾静 ...

  9. NLP工程师必学技能,自然语言处理进阶手册

    系列课程 基础入门:<自然语言处理通关手册> 实战进阶:<自然语言处理进阶手册> 2021 年,Google 一下 NLP 职位,你会发现有大量的相关搜索.实际上,世界各地各大 ...

最新文章

  1. Nginx配置文件nginx.conf详解(转)
  2. Vue团队核心成员开发的39行小工具 install-pkg 安装包,值得一学!
  3. 晚上我们一起去白码会所玩啊!
  4. php返回200,关于API 使用 HTTP 状态码还是全部返回 200
  5. HDU 3401 Trade dp+单调队列优化
  6. html怎么把新闻列表放在右边,div+css实现简洁、清晰的新闻列表样式(浮动使日期靠右)...
  7. 如何在Word中输入带圈数字1-10的黑底白字和白底黑字的数字字符?
  8. 10大优秀的移动Web应用程序开发框架
  9. 关于EN信号通过电阻分压的问题
  10. 梁宁增长思维30讲笔记 - 模式
  11. word怎么设置分栏 word设置分栏的方法
  12. 云服务器/树莓派搭建我的世界Minecraft多人游戏服务器
  13. 猫哥教你写爬虫 042--session的用法
  14. 想开发微信小程序分销商城需要做好哪些地方?
  15. 关于给hexo博客增加节日气氛主题切换(包括中国春节和圣诞节)
  16. ui界面颜色设计_界面设计ui的颜色基础
  17. 告别纸质化办公,OA系统为企业节能提效
  18. android app防止锁屏_android 屏幕保持不锁屏的实现方式
  19. 【VUE】【VUE-CLI】【bootstrap】【jeecgboot】干部任免表前端
  20. h3c路由器和三层交换机之间连接配置

热门文章

  1. java语言编程基础_Java编程基础02——Java语言基础
  2. CUDA out of memory. Tried to allocate 392.00 MiB (GPU 0; 10.76 GiB total capacity; 652.77 MiB alread
  3. 四十一、Vue项目上手 | 用户管理系统 实现用户修改和删除功能(完成篇)
  4. 九十二、Python爬取深圳租房信息小案例
  5. 二十八、Node.js中的RESTful API和接口设计
  6. 四、爬虫中的urllib库使用
  7. 直播 | WWW 2021论文解读:论解耦图卷积网络和标签传播的等价性
  8. 对话智能新高度:全面解读百度开放域对话模型PLATO
  9. 博士学位论文 | 机器阅读理解与文本问答技术研究
  10. 每周论文清单:对话系统综述,全新中文分词框架,视频生成,文字识别