在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名进来,超过的直接拒绝请求了。