对qps、tps、rt、并发数、吞吐量、限流、熔断和降级的了解
在10.24晚上8点时双十一大促预售,看到流量监控的大屏上总会出现QPS、RT的信息,并且在某些服务调用超时或时间较长时,总会听到师兄说对他进行一个降级,所以这里进行一个归纳
- QPS : 每秒查询
- QPS:Queries Per Sencond意思是“每秒查询率”,是一台服务器每秒能够响应的查询次数,是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准
- 互联网中,作为域名系统服务器的机器的性能经常用QPS来衡量
- TPS,每秒事务
- TPS:是TransactionPerSecond的缩写,也就是事务数/秒。它是软件测试结果的测量单位。一个事务是指一个客户机向服务器发送请求然后服务器做出反应的过程。客户机在发送请求时开始计时,收到服务器响应后结束计时,以此来计算使用时间和完成的事务个数。
- QPS VS TPS:QPS基本类似于TPS,但不同的是,对于一个页面的一次访问,形成一个TPS;但一次页面请求,可能会产生多次对服务器的请求,对服务器的这些请求,每个请求就是一个QPS。例:访问一个页面会请求服务器两次,一次访问,产生一个tps和两个qps,也就是说这一次页面请求是一个事务,两个对服务器的请求都属于qps。
- RT,响应时间
- 响应时间:执行一个请求从开始到最后收到响应数据所花费的总体时间,即从客户端发起请求到收到服务器响应结果到时间。
- 响应时间RT(Response-time),是一个系统重要的指标之一,他的数值大小反应了系统的快慢
- 并发数
- 并发数是指系统同时能处理的请求数量,这也反应了系统的负载能力
- 吞吐量
- 系统的吞吐量(承压能力)与request对cpu的消耗、外部接口、io等等紧密相连。单个request对cpu消耗越高,外部系统接口、io速度越慢,系统吞吐能力越低,反之越高。
- 系统吞吐量几个重要参数:qps、并发数、响应时间
- qps : 每秒request的数量
- 并发数:系统同时处理的request或事务数
- 响应时间:一般取平均响应时间
- qps = 并发数 / 平均响应时间
- 并发数 = qps * 平均响应时间
在系统访问量激增,大量请求涌进来时,如果调用的某些第三方接口老是超时或是失败又或者是很慢,要想顶过这波高峰,我们系统该如何处理:常见的处理方式:降级、熔断、限流。
- 降级
- 降级就是服务降级,当我们的服务器压力激增时为了保证核心功能的可用性,而选择的降低一些功能的可用性,或者直接关闭该功能。这就是典型的丢车保帅了。比如贴吧类型网站,当访问量大的时候,服务器吃不消了,可以选择关闭发帖,改密码改头像等等功能,保证登陆和浏览的核心功能。
- 一般而言都会建立一个独立的降级系统,可以灵活且批量的配置服务器的降级功能。当然也有用代码自动降级的,例如接口超时降级、失败重试多次降级等。
- 熔断
- 降级一般而言指的是自身的系统出现了故障而降级。而熔断一般是指依赖的外部接口出现故障的情况断绝和外部接口的关系。
- 例如:ServiceA服务里面依赖serviceB服务,这时候serviceB服务出现问题了,返回很慢。这中情况可能会拖慢A服务里面所有的功能,因此我们这时候就需要熔断!即当发现A调用B就返回错误或其他默认值,就不去请求B了,如果出现问题不熔断,那真的是会雪崩。
- 限流
- 限流会规定系统可以接受多少请求,再有请求过来时就直接跟他说拜拜了
- 一般限制的指标:请求总量或某段时间内请求总合
- 比如:秒杀100份产品,我就放5000名进来,超过的直接拒绝请求了。
对qps、tps、rt、并发数、吞吐量、限流、熔断和降级的了解相关推荐
- 性能测试中常见的专业术语:QPS、TPS、并发数、响应时间(RT)、吞吐率和吞吐量【杭州多测师】【杭州多测师_王sir】...
一.QPS: 每秒钟处理完请求的次数,注意这里是处理完,单接口看做是一个事务的话,1TPS=1QPS 二.TPS:每秒钟处理完的事务次数,一般TPS是对整个系统来讲的.一个应用系统1s能完成多少事务处 ...
- Java并发:分布式应用限流 Redis + Lua 实践
任何限流都不是漫无目的的,也不是一个开关就可以解决的问题,常用的限流算法有:令牌桶,漏桶.在之前的文章中,也讲到过,但是那是基于单机场景来写. 之前文章:接口限流算法:漏桶算法&令牌桶算法 然 ...
- 高并发中的 限流、熔断、降级、预热、背压你都知道是什么意思吗?
首先,我们需要明确一下这几个名词出现的场景:分布式高并发环境.如果你的产品卖相不好,没人鸟它,那它就用不着这几个属性.不需要任何加成,低并发系统就能工作的很好. 分布式系统是一个整体,调用关系错综复杂 ...
- sentinel 限流熔断神器详细介绍
一.限流熔断神器 sentinel 1.什么是 sentinel: 在基于 SpringCloud 构建的微服务体系中,服务间的调用链路会随着系统的演进变得越来越长,这无疑会增加了整个系统的不可靠因素 ...
- 三、Sentinel限流熔断
Sentinel限流熔断 文章目录 Sentinel限流熔断 一.Sentinel简介 1. 背景分析 2. Sentinel概述 3. 安装Sentinel服务 4. 访问Sentinal服务 二. ...
- Nacos,Sentine限流熔断,Gateway网关
文章目录 建立项目 注册中心简介 背景分析 Nacos概述 构建Nacos服务 准备工作 If use MySQL as datasource: Count of DB: Connect URL of ...
- Sentinel实现限流熔断及与Spring Cloud整合
why 在分布式中,为了保证服务高可用,就必须对请求进行限流或服务降级的方式才能够保证不会被流量拖垮导致雪崩效应, what–什么是sentinel? 它是面向分布式服务架构的轻量级流量控制组件,主要 ...
- java 限流熔断_SpringCloud Alibaba微服务实战五 - 限流熔断
简介 Sentinel是面向分布式服务框架的轻量级流量控制框架,主要以流量为切入点,从流量控制,熔断降级,系统负载保护等多个维度来维护系统的稳定性.在SpringCloud体系中,sentinel主要 ...
- 微服务架构之限流熔断
微服务架构之限流熔断 1 高并发下如何保证高可用 1.1 什么是高并发? 高并发(High Concurrency)是一种系统运行过程中遇到的一种"短时间内遇到大量操作请求"的情况 ...
- SpringCloud Alibaba微服务实战(五) - Sentinel实现限流熔断
什么是Sentinel? 请查看文章:SpringCloud Alibaba微服务实战(一) - 基础环境搭建 构建服务消费者cloud-sentinel进行服务调用 服务创建请查看文章:Spring ...
最新文章
- 图表添加特定横轴数据_Excel图表学习61: 编写一个给多个数据系列添加趋势线的加载宏...
- MySQL视图、事务与存储过程
- 05 MapReduce应用案例02
- mysql触发器的要素_MySQL触发器
- 笔记:区分文件头lang=”zh”和lang=”zh-cn”的使用??
- 靠近阿里云--视频点播
- PXC 57 二进制安装
- 研发项目成本计算方法以及工作量评估
- wow.js动画插件
- 王之泰201771010131《面向对象程序设计(java)》第三周学习总结
- 小白也能学会装“win10系统”,轻松撩妹
- proc文件系统介绍
- Java获取今天 开始和结束时间
- Linux环境下安装MySQL(源码安装)
- python程序设计心得体会感想-从Python学习中得到的一点感悟
- C# dataGridView上下移动选中行
- 利用Java反射机制降低代码圈复杂度
- 游戏美术都受到了什么绘画风格的影响
- 西行散记20070324
- EBAZ4205 ZYNQ 7Z010原始LINUX系统的修改与使用