00:00
好,接下来我们来看一下到底怎么进行ADS的写性能压测,对吧?哎,我们先看这个命令啊。看一下这呢是进行压测的一个命令叫hiop价,然后OPT model hiop3.1.3赛尔包下呢,Hiop ma6,那这个路径很熟啊,以前我们跑world com的时候,这个案例就在这对吧,那再往下看,说high my reduce客户端,然后一个test s。那太子的师这个家包就是专门用来进行压测的。好,那这里面它既然是test的斯就有多个案例,那我们首先测的就是test的DFSIO,也就说ADS的读写性能。那读写性能里面就包括它的写性能和读性能,那么首先来看的是写。战后那你写的话向磁盘上写多少个文件呢?对吧,假如说哈,你看我这里面有文件,它需要提前准备好,你写的多少它就准备多少,然后呢,通过map task来读这个文件,写到哪里,写到APS。
01:05
写的过程当中,它会记录每一个map向这个ADS写入的总时间。可以吧,以及呢,平均速度。平均速度怎么算?你每个文件的大小是有的,对吧,你写了多长时间也是有的,那我这个写入的大小除以时间是不是就是速度?可以吧,哎,这两个,然后它会把这个值汇总到reduce task,哎,两个值哈,一个是写时间,一个是平均速度。那好,那他就会把这些信息都汇总到这儿,汇总到这儿之后,他会算一个吞吐量。还有一个I啊,啥意思呢?你看啊,第一种算法呢,是我把你所有的这个,哎,写时间写时间写时间加在一起形成总时间。我再把你前面所有文件的总大小累加在一起,我是不是就能算出来一个总的平均时间呢?
02:04
没问题吧,这种杀法好像没问题对吧?哎,咱们统计沃尔看不就这么统计的吗?OK,那再来,那再来他这种算法怎么算呢。还有一种这个算平均速度的算法,是啊,我在你这个节点上,我就算出来每一个的平均时间,平均时间可以吧,然后把平均时间聚合到re里。然后我再除以你一共有多少个map t?能懂这含义吗?哎,两种算法哈,理论上来说它俩应该偏差不是特别大,哎,如果说个别某台服务器。它的读写性能特别差,那它俩的值就会有一定的偏差了。OK,那往下看啊,那下面走到这儿说有多少文件,那多少文件呢,一般情况下呢,就是集群的CPU总和数去减一。我服务器我是三台服务器,每台服务器呢是四核,应该是三十一十二啊12减一应该是这样对吧?啊正常是这样,其实呢,你只要掌握这一点就行了,我这是三台服务器对吧?其中两台服务器的CPU核数累加在一起是八。
03:12
四加四八吗?对吧,你只要大于八就行了。大于八啊,小于多少呢?小于你总和数十二在这个之间。那这有什么含义呢?其实啊,它的含义呢,是保证你每一个map task。在每一个节点上都有启动。你看如果我设置这个,呃,四个四个卖。是不是有可能我这一台服务器,我四个核,我是就它启动了,其他都没启动,那你测试效果就要差一些,好那我要启动五个ma task,那是不是一定得有两台服务器进行开启啊,比如说它这里面假如说四个,那它一个ma。那我只要大于八,大于八的话,就三台服务器上,那肯定都得有ma式运行。能懂这意思吧,哎,所以说这块我给个十也可以。OK,那这个每个文件的大小呢,是128兆,OK,那下面我们进行测试一下。
04:07
来到103吧,Cdd model啊。中。第一遍不一定成功啊。哎,也还真成功了。看看啊。正常情况下呢,你们的电脑测试不一定成功。十个芯片对吧,十个文件。感觉够呛了啊,够呛啊,这个没成功的。呃,是对的哈,看这块儿。看到吗?说这个你这个内存呢,呃是2.4,但是呢,呃,你这个虚拟内存只有2.1,啥意思,报错了吧?哎,报错就对了哈,还记得咱们之前有一个叫虚拟内存检测吗?在配置甲烷的时候。
05:06
当时啊,咱们说物理内存的是四个G。还四个G4个G呢,虚拟内存是物理内存的2.1倍,那它会虚拟出来8.4G的内存。但是这8.4G内存呢,由于Linux啊,三通S7和JAVA8它俩呢啊,这个处理内存处兼容性处理的不是特别好,Linux会给这个程序预留大量的内存啊,甚至说大于五个大于5G。那导致呢,这个代码实际能够获取的内存会小于你实际的物理内存四个G,那非常小。那就导致你程序,哎,虚拟内存经常性的溢出,那这5G呢,就是你浪费了啊,并没有参与这个运算。OK吧,那所以说这个虚拟内存,一般我们就把它关掉,只开启这个物理内存就行了,那物理内存你要么就够,要么就不够。是吧,因为它是实实在在的这个物理内存,你这个虚拟内存是假的,逻辑上的这个虚拟出来的,OK吧,行,那下面呢,我就把它给。
06:05
配置起来。呃,来到102CDD model还EDC还呃,VM雅N-S进来O。好,SSY c.N杠三轴。好,那现在呢,分发完毕,分发完毕之后啊,一定要重启一下你这个延啊呃,Stop,雅安点S时候。SV start。好,现在呢,完毕,嗯,重启完毕之后,我们再来执行一下这命令中。看看这次效果怎么样啊?
07:12
他这个执行啊,需要点儿时间。我这电脑算是快的啊,因为我是固态硬盘啊。如果机械硬盘的话,它这个速度会更慢一些。再有啊,咱们是把这个网速给它限制了,所以说它这个也会影响它的读写性能。
08:01
别着急,耐心等待。这期间啊,大家可以思考一下。呃,思考一下,一会儿我们运行完之后啊,它会出现一个结果啊,那这结果呢,长成这样。啊,就是这样。嗯,Number five多少啊,然后总大小是多少。还有呢,这是吞吐量啊,以及呢,这个平均值的一个平均值。后面呢,还有这个l rate啊,这呢相当于是一个方差啊,方差你刚才不能说了吗?这个呢,是按照平均值的一个计算啊,它是有方差的,然后之后呢,是这个呃,测试的总时间。嗯,还在运行啊。
09:01
你看这时候能看到一个现象啊,看到没?哎,这个map test还没执没执行完,Reduce已经开启了,哎之前咱们在讲map的时候,是不是说过这种情况啊,哎,它是允许这种事情发生的啊行,那这里呢,是我们实际测试的一个结果,对吧?哎,这些值。那定出来吧。定出来,那定出来之后,那下面它怎么看呢?对不对啊,大家关心的是这里面这个值怎么读,第一个首先是不是十个文件呢?啊,然后呢,每每个文件128兆加一起是不是一零啊280是吧,这么多这么多兆,那下面这个值。什么含义?还记得吧,这块。他是不是把所有的数据量累加在一起,除以总的时间呢?哎,是这么得到的啊,这个是总的,然后下面呢,这个是哎每一个。回忆一下上面第一个值,它是把所有的数据这个写时间拿过来,然后呢,再跟你这个所有的文件大小啊进行一个处理,嗯,然后得到的那另一个呢,是每一个先算平均值,算完平均值之后再算平均数。
10:09
这是它好吧,那大概呢是1.41,那一看到这个1.41,那怎么分析这个结果呀,说看不懂啊海哥,那它就是1.41兆每秒吗。对吧,那我们这个是好还是不好呢?大家更关心这个结果吧,那来看啊来看。来看有什么事呢,看这块儿。所以啊,我们现在呢,是不是三台服务器。对吧,而且每台服务器是不是有三个副本。这样OK,那我们进行压测的时候,它其实是本地准备了一份文件,那这份文件呢,其实就是。本你要在本地准备的话,那他就是本地一个副本。然后那我要进行,哎,上传往这里面写的时候,其实他只需要写副本二副本三就行,因为本地已经写好了一份。对吧,哎,好,所以说他说是十个文件。对吧,我们测试十个文件,那你看其实就是两个副本这两个,因为这个本地已经已经准备好了,你不需要再再再来一份了吧,对吧,那其实是20个文件,那20个文件我实际压测现在是1.4.1,对吧,这是我之前测试,我是1.6.1。
11:13
那你1.4.1,那你实测速度乘以20个文件,那你网络带宽多少呢?我这三十二一点四乘以20,那就二点八二十八呗,28兆每秒。对吧,你实际的网速达到了28兆每秒,OK,那好,那我三台服务器的带宽还记得吗?每台正常标准的是100兆每秒啊BPSBPS转换成这个兆每秒的话,就是12.5 12.5 12.5加在一起大概在30兆每秒左右,因为说了有一定的这个损耗,那我刚才算出来是28兆每秒。是不是已经达到了你网络的一个带宽极限了,哎,差不太多了,已经大小。好,这就是受网络影响,你最高的速度现在是这些。能懂吗?而且啊这个值哈,你每次运行这个值,它都会有一定的偏差,你看我这次,我上次运行的是1.6.1,这次运行的就是1.4.1。
12:04
因为你这个服务器,这三台服务器,它是有程序在运行的。它会影响你一定的带宽,包括你当前这个硬件对吧,啊,这个性能它也不是一直非常稳定的。啊,略微有点偏差,是能接受的,OK吧,这是这个情况。好啊,如果实测的速度远远小于这个网络。那则实测的速度不能满足工作需求,可以考虑什么呢?增加上你的硬盘,比如说网络这块啊,如果说他没有给你限制的话,无限的使用,我跟你说这个设置速度是很高的啊,这个是这个设置速度会很高。那那就受什么影响呢?那剩下的你就要考虑增加固态硬盘了。比如说这样,如果你把这个给它打开。哎呀,我一我测完毒的时候再打开吧,那你测把这个网速,比如说我们不限制它100兆BPS。那你看一下这个值会非常大。啊,一会我们就来测啊,行,那下面啊,如果是这种情况,如果客户不在集群节点。
13:04
诶,假如说客户端你这个数据准备这个压测的数据不是在本地生成的。那他可就没有提前这个副本了哈,那你相当于就是三个副本,能懂我意思吧,你这个数据是外部来的,不在集群内产生。哎,那这个时候你上面这个公式,这就不是乘以三个负,你就十个文件就得乘以三,然后你进行一个计算。那道吧,这是两种算法啊,两种算法OK,行,那这个读测试啊,我这个写测式先测试到这,然后我们再来测一下读啊读,读的话呢,还是还价啊,OPT model啊,然后还它仍然是这个加包,这回呢,我们测试的是读啊读文件,那读文件的话,我也读十个吧,啊也读十个OK吧,哎,读十个文件,那来看一下这个效果哈。
14:01
读的速度要快一些。为什么说读的速度要快一些呢?大家思考一下。我这是三台服务器,每台服务器上是不是都有副本啊,我来读数据,我相当于是一个什么读。是不是都是从这个本地我最近原则去读啊,而且我不需要从这读一份,从这再读一份吧,我只需要读一份,那你读一份的话,那就是本地的读写。你看一下这个值。这多少把这个复制过来吧。能读懂吗?把这个替换。思考一下啊,看看能不能读懂。OK,那这里面说200兆每秒对吧?哎,读取的速度。
15:03
那这个呢,是266兆每秒,那你会发现我们的实际的网速才多少啊,是不是才30兆每秒啊,加在一起吗。那已经完全超过你网络上的一个限制了。那为什么说超过你网络限制了呢?因为他根本就没走网络,刚才已经说了,他根本就没走网络,你这是本地读取这个副本一,副本二,副本三对吧,哪怕说你再有一个105都可以啊,都可以他走网络了吗?他直接从这读的你这个102对吧,读取数据,我说就地原则从这读数据,你要在你这个客户端,如果在103 103上,那我从这读,我在104上,我从这读。对吧,如果你有一个105的话啊,然后呢,你在103,呃,102上去读,或者103上去读,那还会走走这个网络。能懂吗?所以说现在呢,这个读你由于你服务器的台数比较少,跟你的副本数呢是一样的,那他无论怎么读,他都不会走这个网络,所以说你那个30兆那个网络限制没有用,那现在它限制呢,它的读写速度是由谁来限制呢?有你硬盘的读写速度,那我现在呢,我是固态硬盘,所以说我能达到200兆每秒,我估计你们的硬盘应该达不到这个啊好。
16:11
这是这块的读性能的一个测试,那下面哈,我把上面这个写测试这个网络带宽给它放开。我给它放开,你们看一看。设置。网络。这个放开,放开的话就是不受限。你的磁盘速度是多少它就多少。你再看一下他这个测这个写结果哈。就是玩呗,啊,各种测试。你说现在网络不会对它产生影响了。不受限,不受限。网络高级。
17:02
好,现在我网络已经不受限了,不受限之后我再来执行一下对应的写测试,看好了这是写测试对吧?啊,你看这回执行的结果是多少。写的速度比较慢啊,别着急,慢慢等一会儿。大家这时候可以思考一下啊,我现在呢,已经不受网络限制了,那唯一能影响我这个写速度是多少啊,你看跟刚才的值一样了吗?看一下。刚才我们是一点几兆B每秒啊,那你看现在呢,是不是22.18兆每秒啊,对吧,这个吞吐量是这个。那你吞吐量是这个的话,我们来看一下。你再来计算。
18:01
你吞吐量是它,我现在是十个文件对吧?嗯,十个文件,那我还是两个副本20,那现在这个压测的实际的速度是22.18。来。计算。22.18我是多少个文件?20个文件吧,乘以20等于多少?我现在这个速度能达到440多兆每秒。对吧,啊完你要完全不受网络限制的话啊,这就是我这个写磁盘的一个速度啊,我是纯固态啊,纯固态啊,所以说会比这个速度要呃,比你们的电脑速度啊要要快一些,也不一定,万一你们也是固态呢,嗯,诶这个地方呃,影响这个诶DS读写性能的两个核心因素,一个呢是网络,另一个呢是磁盘,那如果是网络影响,那你适当的这个提高你的网络,如果是磁盘影响,那你尽量的可以去买这种固态硬盘,提高你这个读取性能,OK吧。
我来说两句