00:00
好。那么接下来我们看看怎么用这个指标来分析反压的节点呢。其实这个。要结合前面的原理来讲。最有用的几个指标是什么呢?关于这四个指标是不是关于什么什么池子的使用率对吧。啊,什么buff分使用率,其实这个就是咱们刚才讲的每一个它的前后是不是各有一个缓冲区啊,它主要就是看这个缓冲区的使用占用率啊来分析,我们根据这来分析,那首先有一个output。Out user色是发送端buffer使用率,还有一个输入端的。那除此之外,1.9及以1.9以上的版本还提供了两个更具体的,一个fourteen exclusive。都是属于接收端的,就是硬相关的啊,那么其中他们什么关系呢?这个输入接收端的使用率就等于这两个东西加起来。
01:01
那如果是找老版本,你就看这俩就行了,那怎么看呢。根据咱们前面两种情况,大家想一想。呃。两种情况分别是什么呢?就第一个。OK的算子。啊,咱们简单敲敲几下,等于说前面都是。反压,反压。OK。OK。一种,还有一种是比如说OK。OK。法尼亚尼亚法尼。比如说第一种情况。我们一般是不是定位到它才是罪魁祸首啊,那么大家分析一下它的一个特点,从缓冲区来讲。咱们缓冲区对吧,我们说它处理能力不行,那它的输入缓冲区一定是什么,这边是入啊,是不是一定是塞满的对吧,处理不过来嘛,那么你想想输出会满吗?他的输出他是罪魁祸首啊。
02:05
他的输出是不是还好啊。因为它这个输出端多和少是不是取决于它的处理效率,对吧,它的处理效率就是它自己的一个差不多。但是它的输入肯定是塞满了,它的输入塞满是不是就往上游不断的传导压力啊,所以咱们定位这种原因的话,就看什么呢?看它的输入啊是不是高的,然后看他的输出是不是很低,那如果是这种场景,那我们就可以定位到哦,你就是罪魁祸首。什么输入缓冲区,呃,使用率。啊高啊,然后它的输出是低啊,这种是罪魁祸首,那么下面这种情况呢。你想想这罪魁祸首是不是他呀,就类似这种一进多出的,咱们解析数据的啊,一进多出,那它的输入缓冲区是不是还算应该算正常吧。
03:09
对吧,但是他的输出一下子是不是炸出了好多呀。所以这种情况可能是它的输出缓冲区反而会比较慢一点。第一个反应,它的输入缓冲区可能是高,也可能是低,高呢就是被自己卡死了啊。输出呢,一定是高的,他的输出一定是高。那这个怎么看呢?来咱们也是通过web UI看,或者你通过普呃法呢,呃,你收集的监控指标上面看也行。那就比如说咱们目前先尝试着找第一个非法尼亚的扇子,哎,是不是它呀,这个map对吧,然后点matches,然后找一下port。咱们把五个子任务的都找出来。
04:13
其实大家已经看到了,这边是不是其中有一个子任务,它是高啊,这边它的反射值是零到一啊,是一个比率啊,就零点多少啊,比如说0.5就51%呢,就表示它占用已经塞满了。大家注意,但凡有一个不算啊,不是说所有的都买不一定啊,这个是不一定。这已经很明显了,那我们再看看它的输出有没有吗?呃,All us,呃,零号的。破,哎呀,挨个敲,真的。很麻烦啊。好,呃,后面五个应该是一个输出对吧。
05:01
那么看一下输出好像也有一个挺高的,那这个是什么呢。看一下啊。二号对吧。哎,又下来了。啊,二号下来了。只是临时的。那我们看一看。一边。这输入是不是一直是不是也是二号啊,你看还是他对吧。它的输入缓冲区一直是满,所以基本上咱们可以断定,目前从当前的资源使用量来讲,这个map是一个瓶颈。麦表是一个瓶颈啊。那其实后面也可能还会有瓶颈,但至少说第一个先达到瓶颈的就是他了。那也有可能咱们把他的问题解决之后,反而是后面这里又产生了新的瓶颈,那你就挨个去解决,那至少从我们刚才看到这个指标来讲,我们是不是基本上可以定位到啊这个map算子。是目前这种条件下的一个瓶颈,对吧,你看后面输出已经稳定了啊。
06:04
而且呢,第一个OK,是不是满足这个。高啊。输出低呀,所以它就是满足这种情况,所以瓶颈呢,厂压的根源所在就是这个map算对吧,那我们当前案例是不符合这种场景的,对吧,你1MAP,比如说你进来一条,你写你自己,比如说环条啊,一条进一条种场。会,会不会有这种场景,当然这种比较特殊啊,很难出现,也可能上游全是反压。好,这个就是怎么通过指标来看啊,来确定到底是什么原因。那如果你想更,咱们这边也画了一个表格给大家分析分析,刚才是简单粗暴的理解,呃,首先输入。
07:04
输入跟输出咱们放两边来看,来看第一个输出是D。输出是低。你想想。他的往外发的是低呀。那接下来看他的上呃,它的输入,如果他的输入也是低,那说明这个是不是一个再普通不过的一个算子,而且说他也没有被反间,而且另外他也不会给别人造成反间,所以这个是最正常的,两个都低对吧,那么如果输入是高啊。哎,输就是不是咱们刚才说的那种场景,输入高输出低。这时候你可以看它的上游,如果它的上游啊,都是被反压的节点,就像咱们刚才一样啊,第一个算子,第二个算子都是反压,然后第三个算子满足当前这个组合,那我们。通过自己指标加上游情况,我们可以判断当前算子是什么法尼亚根源,这个就是咱们刚才分析的那么一个过程。
08:06
还有一种情况。如果上游所有的输出都是低。这种是什么?这种其实是一种临时的场景,也就是说,呃,这是第三个算子,我们知道它是法尼亚的一个根源所在,那这个时候它是不是自己慢慢的它的输入缓冲区就塞满了,对吧?那么大家注意它是不是往上游传导压力,是不是还有一个过程。是不是过了一小段时间上游的输出才会被塞满,对吧,也就是说现在是处于还没有向上游传递反压压力的时候,所以这个呢,你可以再观察一段时间就行了,一般很少你能看到这种场景啊。好。另外一种情况,输出是高。输出是高。呃,那如果输入是D,那变成什么呢?
09:03
这是高。那它的输入是低。那你想想。有两种情况。啊,第一种就是咱们刚才分析的第二种反利场景,它是不是一进多出对吧,一进多出。而且它处理的还特别快,这种一进都出,那可能他是不是就是第一个反利的算子啊。他就是第一个反压算子,那么它就是一个反反压的根源,那为什么还有另外一种情况呢?他们要考虑临时情况。就是说他被下游反压了。啊,比如说它是反尼亚根源所在,它的输入满了,它是慢慢传递给上游的输出,啊,上游的输出也满了。这个时候呢,他还没传递给自己的输入啊,这个还没完成,这个时候看起来是不是输入低输出高啊。也就是说这是临时情况,临时情况那这个呢,咱们一般就观察一会儿就知道了啊。所以像这种临时情况,你也可以不用管。
10:03
那如果两个都高呢,那不用讲啊,你就是那条塞车的长龙里面中间的某一辆啊,你是被反压的啊。就相当于说咱们刚才场景前面两个反,第三个是OK,那对于前两个来讲,他们都是被下游反的啊被反。要是怎么来用指标分析反压就也特别简单啊。
我来说两句