00:00
那接下来在我们在做其他优化和压力测试之前呢,来解决一个解密特容易出现的一个问题,这个address already in,柚子,他呢经常会说我们这个地址被占用,来给大家重现一下这个问题,这个问题呢,其实不是解密的问题,而是Windows本身的问题,来给大家演示一下,比如还是拿我们之前的测试,我现在把这个HTV请求,我改成了来测试我们本机1万端口,那就相当于测试我刚启动的这个商品项目1万端口,然后呢,相当于我们默认来测试访问我们的首页功能,但是我这一块线程组呢,我写的是50永远相当模拟50个并发,然后呢,我们一直执行下去们看它最终的效果是怎样的。好,我现在呢就来选中这个线程组,先把之前的这些结果,比如我们有结果的话,我先来清空,然后呢,我再在这儿来运行起来,来看我们的这次测试会出现什么问题,好,先起来了,来看这个结果数里边这些都是正常的。
01:00
报告响应数据都有我们页面内容来看我们的汇总报告里边。那稍等了一会儿呢,我们发现我们这出现了大量的异常,而且异常呢,越堆积越多,我们将近呢,都达到了50%的异常,我这才测试了不到3万请求,50%相当于有一万五的请求都有问题了,那这一块是什么问题呢?来可以把这个测试我们先来停掉,来看一下出现的这些异常原因都是什么,来这一块有查看结果数,来随便找到一个异常,这异常呢,就是我们这个address already in use,说明这个地址已经在使用过程中。我们现在才测了不到3万个请求。我们好多地址呢,都已经被占用了,被占用的原因我们说这是由于Windows给我们提供的这个TC pip的这些端口,默认呢只是1024~5000这么多的端口,而且呢,四分钟才会循环回收它们,比如我们刚才的1024端口用过了,我们呢还得等下一个四分钟才能把这个1024回收了,这就会不导致那在跑这个大量测试的时候,因为我们模拟并发请求,我们都会来占用一个端口跟远程来建立连接,所以呢,我们这个端口相当于就被占满了,虽然我们这个端口最大能支持65536。
02:28
六万多个端口,但是我们现在发现我们跑到不到1万个端口,现在就开始已经不能用了,那这就是我们这一块的问题,那我们想要解决这个问题,我们就需要修改Windows的配置文件,这个配置文件呢,主要是来改它的这个注册表,注册表呢,我们把这个RA edit,这个命令呢,我来复制过来,来Windows r,我们把这个命令拿过来,这是打开Windows的注册表,好,我们来点击确定在注册表的这一块位置,我刚才呢,都已经锁定到这儿了,完整的位置是。我们的local machine,我们的本地机器,我们来给大家看一下完整位置呢,是来找到我们的这一块,我们来缩起来,找到local machine,然后找到它里边的system,我们来找system路径system,再找到system里边的这个current control set,我们的这个当前的这个controlr set控制集,这个控制集里边呢,找到这个service TC pip,找到它的parameters,来找到service,来找TC pip啊,一直往下翻,但可以在这搜,我们来输一个T,那就会来到TC pip,它的parameters在这里边呢,我们可以来设置上两个配置,第一个呢,叫添加一个我们这个d word,这个值我们名叫max user port,相当于最大的用户端口数,我们把这个数呢输成65534,不要输到65536,把整个都占满,我们要留两个预留端口啊,我们在这来新建一个,我们这有一个低word的值,我们在这个。
04:00
名字呢,我们就叫max user port,然后这一块的值我们选择十进制写65534啊,我们来点击确定。好,这两个端口写好了以后呢,接下来继续,我们还可以再加上一个值,将TCP time的whiteline,就是我们这个原来的这个TCP链接端口是四分钟来回收,我们再来指定一个回收时间30,那就是30秒就可以给他回收。把这个配置呢,也可以复制到这来,我们来放到我们的这个注册表中来,右键还是给这个P这张注册信息集里边,我们来在这直接新建一个,还是这个dor的值,这个名呢就叫它,然后呢值我们给这个十进制,我们来写一个三十来点击确定,把这两个加上,包括这个所有的内容,其实都是参照Windows给我们的这一块帮助文档的,我们可以打开Windows的这个帮助文档,我们来看一下。
05:00
他在这个帮助文档里边呢,就说的很清楚,这是由于Windows啊在。我们尝试大于5000的这些端口连接的时候就会受到错误,错误呢,想要调整,那就是在这来建一个max user port。直数据我们能写到65534这么大,然后呢,我们把这个编辑好了以后,我们要退出注册表的编辑器,注意我们还要附加一个这个来指定我们多长时间关闭我们这些等待的端口,所以呢,我们刚才就参照Windows的这些设置,我们就在这儿设置了这两个配置项,一个是65534,一个是30,这两个值我们都设置好以后,一定要重启我们的计算机,重启完成以后呢,我们整个设置才能生效,好把这一块设置完了,我把这个注册表退出,然后呢,我来重启。那修改完注册表以后,我刚才重启了我的整个机器,我还重启了这两个项目和虚拟机,以及我们NAS注册中心,我们现在来测试一下我们的解密特,再来做压力测试的时候,会不会出现那些地址被占用的情况,好还是我们这个50个线程,我们来同时来跑,来看一下我们永久来跑走,那们刚才呢,测试只要一测到一万多就开始有错误了,那3万个请求呢,将近50%的错误,那现在来看这些汇总报告,那这个汇总报告一旦没出来,那说明我们这次跑的有问题,大家就应该把这一块呢给他停掉,那重新再来跑一下,好把这个停掉,把这些之前的汇总这些我们都全清除掉,然后呢,我们在这儿再来重新启动来运行。
06:37
好,因为起来以后呢,我们来看我们的汇总报告啊,现在就开始有东西了,那么之前呢,跑到3万将近50%的异常,那么现在呢,就来等他到3万,我们看有没有异常,那如果有异常都是什么异常?好,现在呢,我们来停掉我们的这个测试,那现在呢,我们发现我们跑了3万多的样本,只有0.15%的这个错误,而且这些错误呢,我们来可以看一下我们的结果数里边一直划到后边,那这些错误我们来看一下他们的错误原因和我们的那个address in use错误了,所以这就是我们这个解密,在Windows下我们来进行压力测试的时候一定要调整的这个设置项。
我来说两句