jmeter 压力测试地址占用

 我来答
青柠姑娘17
2022-06-29 · TA获得超过1.2万个赞
知道大有可为答主
回答量:6639
采纳率:100%
帮助的人:38万
展开全部

压测发起设备:windows 10
网络:局域网
压测软件:Jmeter 5.0
压测系统内存:Ubuntu 4核8G
PHP 版本:php7.1.23
Nginx 版本:nginx1.14.0
MySQL版本:5.7.24
Redis: 开启
CDN:关闭

压测的初期,在设置了 150qps/s 的并发数下压测几分钟后 Jmeter 就出现了如下报错。

开始考虑的方向是Nginx、PHP、MySQL做了相关限制导致线程被占用, 但是修改对应的配置后发现没有任何效果,该报错的还是报错。 查了一波资料,发现 windows 环境下的端口循环回收需要消耗2~4分钟。由此猜测可能是由于 windows下压测端口数有限,端口资源被占满,没有及时循环回收,导致报错。

使用 win + R 快捷键打开 cmd ,输入 regedit 命令打开注册表

2.1 找到 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters 目录。

2.2 右击 Parameters ,添加一个新的 DWORD ,命名为 MaxUserPort 。

2.3 然后双击 MaxUserPort ,输入 65534,基数选择 十进制(如果是分布式运行的话,控制机器和负载机器都需要这样操作)。

2.4 修改配置完毕后, 需要重启 windows 才会生效。

采用上述的解决方案之后,windows 下设置 150qps/s 并发数进行压测,暂时解决了端口占用的问题。在此基础上,将压测的并发数提高至 700qps/s,两分钟内达到 66000+ 个请求,数量超过了 65534 端口数,再次出现了同一报错。

step1: 使用 win + R 快捷键打开 cmd ,输入 regedit 命令打开注册表。

step2: 找到 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters 目录。

step3: 右击 parameters ,添加一个新的DWORD,命名为 TcpTimedWaitDelay ,将值设置为 30 , 缩短 TIME_WAIT 的等待时间。

step4: 重启windows,配置项生效。

Close_Wait 会占用一个连接,网络可用连接小。当数量过多时,可能会引起网络性能下降,并占用系统非换页内存。尤其是在有连接池的情况下(比如 HttpRequest ),会耗尽连接池的网络连接数,导致无法建立网络连接。

step1: 使用 win + R 快捷键打开 cmd ,输入 regedit 命令打开注册表。

step2: 找到 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters 目录。

step3: 在该目录下添加新的配置项。设置合理的 Keepalive 参数。

step4: 重启windows,配置项生效。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
富港检测东莞有限公司
2024-12-25 广告
ISTA3L是一个基于研究、数据驱动的测试协议,它模拟了由零售公司完成的产品订单被直接运送给消费者时所经历的危险,它允许用户评估包装产品的能力,以承受运输和处理包装产品时所经历的供应链危险,从接收到任何电子商务零售商履行操作,直到最终消费者... 点击进入详情页
本回答由富港检测东莞有限公司提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式