00:00
好,接下来呢,我们看一下卡布尔集群的一个压力测试,其实这个压力测试啊,主要针对的是卡瓦的吞吐量的一个测试,比如说之前我们说哎,影响卡瓦通子量的,在生产端有对应的像BA size,还有link Ms,以及呢压缩,还有对应的缓冲机大小三12兆,那么这些参数到底在生产文件当中有没有用呢?是吧?哎,那我想测试一下啊,或者验证一下对应的效果,那好,那其实啊卡卡呢,已经给你准备好了对集群进行压测的一些脚本,比如说生产端压测的脚本,还有消费端压测脚本,诶直接就可以用啊,非常简单啊,那我们需要准备一下环境,首先呢,我们卡瓦集群是三台节点,那还需要准备一台服务器,就是105干嘛呢?诶,专门用来进行一个测试。那我们需要怎么做,首先呢,创建一个主题,这个主题呢有三个分区,分区一,分区二,分三。每个分区呢,对应的三个副本,这样呢,我这个用来测试的这台服务器发往任何一个节点的数据量是一样的,那这样能感受到啊,一个负载的均衡好。
01:04
那首先呢,我们这个环境应该都是有的,对吧,打开节点。看好了。我102103104正常卡把基金已经启动了,看一下105。105,我不把它启动,只让它作为一个客户端来访问我们对应的集群就可以了啊,所以说不需要启动啊,好,那再往下看。第一个我们需要创建一个test topic,那这个topic呢,是对应的叫三个分区,三个副本,哎,这是主题名称,那上面呢是连接上这个考法集群,这没问题吧,哎,可瑞重建这个呢,相谢大家都会啊,直接拿过来。来到102创建。这儿呢,我就创建了一个test主题,你可以查看一下。
02:02
OK,那这里面有了一个test的主题之后,那下面用这个tests主题进行一个测试,首先我们来测试一下它的一个生产能力,那看一下这个脚本啊,卡不卡producer啊,然后port test啊,Test,然后杠杠topic,对哪一个topic进行测试呢?哎,对,这个test好,那下面有个第一个参数,就叫杠杠record set。其实啊,就是你这个生产端,哎,发送一波数据,那一条数据的大小是多大呢?一条数据大小呢,是1024字节,那么其实就是1K,哎,这个跟我们生产文件当中过来的一条日志是1K,大小是不是差不多呀?哎基本是一样的。那再加上杠杠number record,诶,然后后面呢,是100万啊,这个呢,就是总共发送的条数,比如说生产者这端一共处理的日志的条数呢,是100万条啊,数据量呢,还是比较可观的哈,那当然了,你说海哥我想来个1000万或者一条行不行呢?可以没问题,只是执行的时间要长一点哈,那下面呢,杠杠这个thread put啊这呢就是吞吐量啊,也就是说一秒钟你处理多少条信息,那这里面呢,哎,我们呢,每秒钟处理呢是1万条信息,那这个处理能力呢,还是比较强的啊,一秒钟处理万条。
03:14
再往下呢,是杠杠producer purpose,其实呢,就是这个卡生产者对应的一些参数了,你加上它之后,后面你看直接就是布serve对吧?诶连接上卡巴集群,那后面呢,BA size links就是可以直接进行一个配置了哈,那好,那上一个是连接上卡巴集群,没啥说的,那这个BA size,哎,这里面呢,我是明确指定它就是16K,我防止大家这个记不住,说这个BA size是不是16K啊啊,我就给你直接放在这啊,明确的显示好,那还有一个另格MS,那这个呢,也是默认值是不是零毫秒啊,哎,我也给你显示的配置在这啊,防止有些同学记不住啊。那行,那这样的话,我就按照正常默认的这种,呃,生产环境的配置进行一个执行,看一看它的一个处理能力是怎么样的,那你看好了,我是在105上进行测试啊,在105,因为105只作为客户端。
04:05
没有其他的额外影响,这样呢,测的更准一点走。看看他多长时间处理完,同时呢,它处理的这个速度是多少啊。现在你可以看这块啊。好,大概经过这个一分钟左右的时间,那这块呢,我们就执行完了,那执行完的话呢,你看我们总体的这个处理的这个速度啊,是每秒钟9.76兆每秒对吧?嗯,那这个呢,我给它复制出来啊。我先一个复制吧,我先复制这个。给大家记录一下。首先我们的这个测试环境。第一个测试环境呢是bad size是16K 0Ms呢是零秒,那我最终的一个执行时间大概多少?是每秒钟9.76兆。
05:02
OK吧,那下面我们继续测试,咱们总说呀,这个BA size提高会提高你对应的一个存储量,那下面呢,我们就来提高一下这个BA size,再进行一个执行,看看它的效果怎么样,好吧,好,那下面呢,来到这个文档上。下面我们来提高一下这个值,你看刚才呢,是这个16对吧,啊是16K是十六三八四,那我乘以二之后就变成了对应的32768,其值我都不变,我再次进行一个执行。走。好,再经过差不多一分钟的时间,哎,我们又执行完了,那现在呢,我这个best size是32K。好,我再记录一下。那它对应的这个直行速度呢,是多少呢?是9.76兆每秒。
06:02
然后呢?好,那这个呢是9.76兆,好像跟上面这个一模一样,没有什么感觉,是这样吗?那大家觉得好像这个by size对我们没什么影响,其实by size呢,对我们有很大的影响,那下面我给大家做一个什么实验呢?我把这个BA size调小,你看一看这个吞吐量会有什么变化,好。那下面来到这个笔记里面,笔记里面我把它变成多少呢?我变成4K,别的值都不变,我就把它变成4K再来执行。你看看他的处理速度怎么样?中。好,执行差不多这个三分钟左右啊,就已经执行完毕了哈,那这次呢,你会发现这里面我把这个批次大小改成这个4K之后,出现什么问题,是不是执行的非常慢啊,然后来我们再记一下啊。
07:01
下面呢是BA size,另伽S是4K,现在呢,突然间变小了,小到什么程度呢?变成了3.81兆每秒。看一下是吧,哎,这个拜呢,其实还是有影响的啊,要记住它只不过呢,符合一个这个正态分布曲线啊,也就说不是你这个拜size越多越好啊,也不是越少越好啊,那这里面是取这个中间啊位置啊,这个呢,需要根据你公司的一个实际情况进行灵活的一个配置哈,好,那下面我们来看下一个啊测试啊。下一个什么设试呢?就是这个link根MS对数据的一个影响,我们还是呢,变成这个4K,然后呢,零格MS啊,我从零变成50,咱们说提高零和2S是不是能够提高它对应的一个吞吐量啊,是吧?哎,那我们来试一下啊。变成50。然后。
08:08
好,接下来呢,经过这个三四分钟的时间呢,我这边呢就测试完了,那测试完的话呢,我这里面现在的这个执行时间是3.83兆每秒。好,那我来。那就是3.83,那比上一个是不差一点点啊,也没差多少,比如说这个呢,是采用的是50兆每秒。也就说增加这个links这个时间,呃,其实提高不太多。那这里面给大家解释一下,为什么这个link格MS啊,它这个参数呢,哎,没起到太多的作用,主要的原因是因为我们是测试环境,测试环境啊,你这里面比如说我们的EP大小呢,是16K。你过来,比如说第一条过来之后,我会非常非踌速的就把这个16K给他打满了,但是生产环境当中可不是这样的,生产环境当中啊,是这样,你来一批之后,你是不是有可能等啊,哎,等好久之后才会把这个16K装满,那这样这个link Ms这个时间就有用了啊,这是不一样的场景啊,这一定要注意,嗯,所以但是这个link Ms在生产环境当中啊,肯定还是有用的,只不过我们现在是测试环境是这个发送过来的日志啊,是一条挨一条的,而且是特别快的啊。
09:18
好,那下面往下走看什么呢?看一下对应的这个压缩这种方式的一个效果,比如说咱们总说这个有这个呃,Snap皮啊,拉着罗呀啊,还有对应的像这个呃,JSTD等等这些压缩方式,那么来测一下,看看哪一个压缩的效果要好一些,好吧,那现在呢,比如说我们对这个数据啊,采用snap这种方式压缩。那大小呢,还是这个4K啊,还是4K。啊,来到这儿,来到这儿之后再次执行。我把这个值给备注一下啊。好,经过几分钟的测试啊,发现呢,这面采用耐皮压缩啊,它最终的测试结果呢,是这个。
10:05
拿过来。哎,发现这个效果不是特别好是吧?哎,也就是说没有起到这个压缩啊,能够提高这个吞吐量这个效果,那下面我干什么呢?我换一种压缩方式,我不用这个sta皮的啊,我用别的。呃,我来测一下,对应的叫这个JSTD,看看它的效果又怎么样啊。每个压缩我们都测一下。好,经过差不多五六分钟的时间,那这块呢,我们已经执行完了,那我们采用JSTD这种方式呢,它的这个计算速度啊,是每秒钟5.68兆每秒拿过来进行一个记录。OK,比就说要比这个stape术效果要好很多呀,啊,那这里面呢,它的处理速度呢,明显高于对的不采用压缩这种方式啊,也就是说压缩呢,确实还是有用的,那除了JTD这种压缩方式之外,我们还有什么呢?还有对应的这个GZP,那我们来试一下GZP,它的一个测试效果又是什么样?
11:21
执行。好,差不多经过五六分钟的时间,那这边呢又执行完了,那我们来看一下现在呢,这个处理速度啊,是每秒钟5.9兆每秒。那把它粘过来。它的效果是不是也比不采用压缩要好一些啊啊,同时呢,它的速度跟这个JSTD是不是差不太多啊,差不太多啊。那我们还有一种压缩方式来看下面呢,我们来测一下这个LG four啊,看看它的一个压缩效果又是怎么样的。
12:04
就一个一个撤呗。走。好,那这个呢,我们也吃完了,那把这个值拿过来,每秒钟呢是3.72兆每秒。LG缝,那么它的效果呀,是不也不是特别理想啊,比如说比这个没有采用压缩,其实效果反而差了,比如说它和s snapy都比较差,那如果效果比较好的话是这两个啊,那为啥这两个比较好呢?其实啊是因为它两个这个压缩比呀比较大,那也就说把一个大的东西啊,能压的这个非常小啊,但是呢,其实它压的速度啊要慢一些啊,这个JSTD还好一些啊,这个GZP呢,压的其实速度非常非常慢啊,G这stepp呢,如果说在这个呃,你每批次过来这个日志啊呃非常非常大的情况下,那么这个压缩效果还是非常明显的,那这里面要注意啊啊大家呢,不要因为说海哥这个测是诶现在这个一看是这个在D和G好,我在公司当中就用这两个啊,这个呢要结合你们公司的一个日志情况以及吞吐量再进行一个测试啊,再来进行一个选择啊,比如说你看咱们现在呢,单条日志呢是1K,如果你的日志啊非常非常大,那这里面其实S耐皮其实效果也还是非常不错的啊,这个呢要注意啊。
13:31
那那除了这之外呢,下面我们还有一个参数没有测,那就是这个调整这个缓存大小,看看把这个32兆的缓存我调高到64兆,看看效果明不明显啊啊这里面我仍然采用的是这个4KB的这个P次大小,以及02Ms呢,是50啊毫秒,还有呢,八分变成这个64兆,那这个环境进行一个测试。好,走。
14:08
诶,把这个拿回来。跟这个对比哈。好,那这个呢,增加这个缓存大小,诶我们就测试完了哈,它这个测试结果呢,是3.76兆每秒拿过来。从这啊,也就是说增加这个缓冲器大小啊,哎,其实没有太大的一个提高是吧?哎,那这个要注意啊,还是呢,跟你这个测试的这个环境有关系,如果你测试的这个数据量特别特别大的时候,比如说你过来一批数据。哎,我这边正常是32兆,哎,能够放得下,那么你放到64,那没有任何影响,那反过来如果你32兆放不下的话,是吧?哎,那这个呢,就要有影响了啊。接下来呢,给大家总结一下,在生产环境当中,想提高对应的生产者到卡瓦集群对应的吞吐量,那这时候呢,大家可以考虑提高这么几个参数,第一个呢是bad size,还有对应的link Ms,以及呢压缩,还有对应的缓冲区大小啊,那这几个值呢,对你整体的一个吞吐量呢,会有影响的,那么我们还是需要根据你公司的一个实际的情况进行灵活的一个调整啊,这里面呢,不绝对,因为你的数据啊,啊,数据发送的频率啊,数据的格式啊,啊,以及数据的各种大小都会影响你对应的吞吐量,那这时候呢,我们考虑哎动态的去调整一下这几个值,哎,最终呢,达到一个最优的一个效果啊好,那这个呢,生产压测我们就先到这儿啊。
我来说两句