您的位置 首页 > 婚姻情感

互联网公司后台岗位注重的几个系统指标:QPS与TP(1)

1.背景:

同样是写代码,为什么互联网公司对技术的要求要比普通公司高,工作压力也更大。主要的原因就在于性能。

实现一个功能有一百种方式,在这一百种方式当中,有的复用性高,有的代码流程清晰,有的代码稳定,有的代码高效,互联网工资最注重的就是稳定和高效。

因为用户对于app时间的反映是特别敏感的,举个例子,早年12306为什么被这么多人诟病,主要原因就在于性能不高并且不稳定,导致用户体验特别差。

本文首先先谈一谈性能。

想要清晰的描述一个现象,最重要的方法是量化。把用语言描述的模糊的指标量化为可以用数字来表示的指标

如果评价一个人学习的好坏,不能简单地用 优良可差来描述,应该把成绩量化成分数,才能更清晰的描述一个人的学习成绩。

代码的性能同样也是如此,所以就有了几个基本的描述指标,其中最基本的是在两个维度对服务进行描述的指标:

1、能力

2、耗时

所谓能力,就是该接口能扛得住多大的流量,为什么12306服务不稳定,不是因为12306的技术人员水平不行,主要的原因是春运抢票这个bug场景。每年春运开始,有无数的人在同时抢票。普通的小app根本无法想象这种场景。

如果你的服务能扛得住这么大的流量。说明你的接口能力强

但是光能扛得住也不行,如果一个用户买火车票,需要一个小时才能完成,即使能扛得住春运这个流量,那么用户体验也不行。

所以 你的服务既能扛得住这么大的流量,又能在很短的时间内完成服务,说明你的接口相对来说完美了。

对于系统的服务,这两个维度能能力上的量化就有了两个指标:qps和tp

2.指标的含义

QPS:Query Per Second 每秒查询率。

表示一个服务每秒钟完成的请求数量。

一次请求是什么:

对于程序来说,其工作的本质就是输入 处理 输出。所以,完成一次输入,处理,输出的过程,就是一次请求,也就是一次query

用户使用手机淘宝app查询商品的时候,在搜索栏输入nike,即发起一次请求,服务查询数据库,获取到信息,返回给用户,当用户看到的结果,也就是nike相关的商品信息显示在手机屏幕上的时候,一次请求完成。

用户使用12306订票,选好起点和终点后,点击查询,服务即查询库存,随后把当前的车次以及车票情况显示给了用户,这就是一次请求的完成

QPS是什么:QPS是一个数量,每一秒,完成多少次上面例子中的请求。QPS就是多少。 QPS本身只是一个数值,描述qps不能少了主语,什么东西的QPS是多少。对于后台服务来说,通常将 某个接口的qps是多少。

那么,qps是简单的用来形容服务的能力的吗?

我的一个接口 qps是10000,那就说明我的接口能力强吗?

并不是

qps是描述服务当前所处状态的指标。这一秒完成了100次请求,那么我的qps是100,下一秒完成了1000次,那么qps是1000,这是随着时间的推移而变化的一个指标

举个例子 对于淘宝商品查询服务,可能每天0点qps只有100,但是在双十一,qps可能有两万。

所以,qps只是用来描述当前服务一秒钟完成了多少次请求,并不能直接描述接口的性能。

那么,什么能描述接口的性能呢?

描述接口性能的是 接口的最大qps。

这是个固定的数值,这个数值如何得出的呢? 这个数值是在对服务对接口进行压力测试的时候得出的。

为了检验自己的服务的能力到底有多强,会对上线的代码进行压测,压测结果就是这个服务的最大qps。

这个值表示这个接口可以承受住一秒钟完成多少次请求。

举个例子,淘宝的商品查询接口,在压力测试的报告上面显示,最大qps是5000,那么 平时100左右的qps根本对这个服务造不成什么影响,只是挠痒痒。而双十一 qps达到两万后,很可能就会出现问题,因为压力测试中,最大qps是5000,现在用户每秒请求量大大超过了这个值,就容易造成系统崩溃。

怎么解决这个问题呢?

不断的迭代优化接口,或者换更好的服务器。让接口可以承受住这么大的压力

这就是qps:表示某个服务当前每秒钟给用户完成多少次请求。

最大qps:表示这个接口最大能承受住每秒钟完成多少次请求。

qps监控示意图

如上图所示,服务的qps等于5000. 表示这个服务每秒钟完成了五千多次用户请求。并且看趋势qps还不断在增加。

如果你压测报告上面qps是20000,那么是小case,完全能承受住,如果你的服务压测报告能承受的qps是9000,那当前值是9430,说明此时很危险。

那么为什么会出现当前qps比最大qps还高的情况呢?

有两种情况:

1.代码没压测就上线,自己并不知道最大qps是多少。

2.突然出现的某些事故或者场景如下图这种,明显是出现事故了 当前qps陡增

qps陡增示意图

这就是形容服务能力的qps指标。

而在时间维度形容服务耗时的另一个指标——tp,下期接着讲。

欢迎关注本头条号,我的愿望是,把我学到的知识转化成其他人的知识。通过这个过程,深入理解我的知识

头条名字起的不是太好,今后可能会更换。

责任编辑: 鲁达

1.内容基于多重复合算法人工智能语言模型创作,旨在以深度学习研究为目的传播信息知识,内容观点与本网站无关,反馈举报请
2.仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证;
3.本站属于非营利性站点无毒无广告,请读者放心使用!

“tp是什么意思”边界阅读