00:02
那我们刚才啊,在这说了,说这个一般情况下啊,这个变化度是就是这个单线,呃,单节点线程数乘以节点数量,节点数量好说啊,我们闭目在千万。单基点线程数。再说了,如果说单机资源啊,单机硬件资源达到了上限。啊,我们再进行横向的扩展,那现在问题是单节点线程数,这是我们可以设置的呀,我设置成多少合适呢。对不对,诶大家看啊。单击线程数,我们怎么样算?怎么样算?他说,啊,这一台主机中,线程池中线程数的设置需要谨慎。不能盲目的直接。这个调大线程数啊,设置过大的线程反而会带来大量的线程切换的小。
01:01
那生成多少合适呢?那理想环境下单节点的最优线程数计算模型是这个?C,而且C就是我们的内核数量啊,然后T1。T。就是CPU啊,内部逻辑计算耗时,这是时间T,二是外部IO操作的耗时。那他俩一加,除以它。这个东西。就是这样算的。当然这个这样算啊,这个这个式子啊,我们要看的话,其实也不是很容易理解啊,嗯。我们这样啊,老把这个式子给给大家这样解析一下。呃,最优线程数。等于等于它对吧,来看啊,我给你换个形式。
02:03
是不是它是等于。C。乘以。我们把这个这不是它加它除以它嘛,是不是就是T。除以T1。再加上。C。乘以。这是不是?T2除以T1。就是等于它吧。对吧,啊,C乘以T除以T。然后C乘以T2啊,除以T1,那这个进一步再写T1除以T1是不是就是一啊,所以这实际上就是C。再加上,然后。C。可以。T2除以T。是这个意思吧。
03:01
那这个是哪啊,我们假设往里带个数。因为我们知道啊,一般情况下这个外部IO。要不要操作啊,那他要。比这个要大得多,我前面不是刚说嘛,这个这个这个都可以忽略不计了,假设啊。那么假设。呃,这个T,呃这个,呃这个C是一。我只有一个内核啊啊T1啊,T2是T1的九倍。T2是T的九倍,这为了好算好理解啊,我就给你说个九倍实际上比它大的多啊。啊,甲设是他的酒杯,那意味着什么?这是一。这是一,它是九。一加九是十。也就是说,我最优线程数应该是十个。什么叫十个?就是如果我的CPU。包含。
04:00
啊,多个内核,每个内核,我给他每个内核啊,我让它处理十个现成的。这个这个。任务。它是这样一个意思啊,就因为我现在说这个是一嘛。是吧,这是一啊。我让他每一个啊,就是我我让他啊,让这个内核内核数啊,内核数啊。因为大家想一下,如果我这个假设是三的话。我线程池应该是段。三的话,这个是它除以它是九,那那这个三。3927是不是30。是吧,这30。三是什么意思?每一个内核,我三个内核嘛,每个内核是不是给你分十个现成的任务。这你去处理啊。对吧,这十个。又怎么分法呢?这十个是有一个去处理我们。
05:05
CPU内部逻辑运算。有九个处理IO操作,外部IO操作,这样的话,我们内部运算和外部运算它那个时间就匹配上了。对不对,这就是为什么啊,他用用这种这种除是吧,这是比例的这种方式。特别让他匹配,让这个内部运算。时间和外部运算时间。进行匹配。那你不是跑时长吗?你是耗时是它的九倍,我说给你分九个线程同时在做,你这样的话是不是一个时间单位就做完了,它本身也是一个时验单位,这俩是不是就匹配一块儿了。他是这样理解,可能大家就好理解一些,这个最优线程数是怎么来的了。对吧。另外啊,还需要给大家做个说明,那你你可不要啊哦,好,那那这个东西我直接给他,呃,搞出来以后啊,我设置线程数的时候,直接给他设这样一个数。
06:07
注意啊,这个仅仅是一个理论值。是理想环境下的一个理论值。你在实际生产环境下,呃,不建议大家夸嚓,直接就设置这个线程池里边线程数,直接设置这个值。这个一般情况下啊,是达不到这个值的,这个理想值嘛,所以一般我们怎么做,一般啊,首先你要知道啊,这个东西肯定是和环境有关系的,你比如说你是通常情况下,你现在要算通常情况下这个最优线程数还是。在双11的时候。在618的时候。在高并发的情况下,这些最后线程数这个是不一样的,最首先大家要知道你算的这个最优线程数是基于某个环境的。哎,你先指定哪一个线程数啊,比这个数小,你先算开这个数,然后设置一个值比它小。
07:06
有点小,然后让它运行。但是怎么运行你压测呀,你肯定之前是压测的呀。是吧,让你观察那个效果诶。这个效果。还算可以,再把这个值调大。把这个线程数调大,然后再运行,你再看看它的效果。那比刚才那效果更好一些。好。啊,再挑战,再挑战,再挑战。直到你找到再调哟,发现降低了对吧,对你这时候啊,找到你这个环境下啊。性能的最高值。那这就就你你的那个最优检测数,所以这个数值啊,这个计算的数值就是啊,让你有个大约有个有个谱。是吧,我们算开这个数以后,我让他。
08:02
设定那个值要比这个值先少一些啊,这是。就是呃,需要大家注意的一点啊。啊,注意啊。呃,该计算出的,呃,数数值啊呃。是,呃,理想。状态下的,呃,这个理论啊。出去。呃,在。生产环境中。呃。不建议啊,就是直接。使用。是吧,而是哎。呃,在而是,而是什么根据是吧,要根据呃。当前环境。啊,先设置。
09:00
一个B。该。指小的这个。数值。处处置。嗯。然后呃,这个怎么说呢?嗯。观察。呃,其。压测压。嗯。压测呃,效果是吧。啊,然后。再根据效果。逐步,呃。挑战。呃,这个这个。线程数吧。线程数是吧,啊值。支持。找到。在该环境中。呃,性能呃最最佳。最佳。性能最佳。
10:02
是的。是吧,哎,就是这个值啊,我们怎么用这样用它的啊OK。
我来说两句