0


【压力测试 2】JMeter压力测试之Internal server error 500 问题解决思路

二、压测接口时,并发一段时间后,会报java.net.BindException: Address already in use: connect


原因:

Jmeter里的http sample勾选了keep alive,导致会话一直保持,而windows本身的端口有限,导致端口被占用完后,无法分配新的端口,因此会产生java.net.BindException: Address already in use: connect 报错。

解决方案:

HTTP SAMPLE 不勾选keep alive

三、Keep-Alive模式


我们知道Http协议采用“请求-应答”模式,当使用普通模式,即非Keep-Alive模式时,每个请求/应答,客户端和服务器都要新建一个连接,完成之后立即断开连接;当使用Keep-Alive模式时,Keep-Alive功能使客户端到服务器端的连接持续有效,当出现对服务器的后继请求时,Keep-Alive功能避免了建立或者重新建立连接。

http1.0中默认是关闭的,需要在http头加入”Connection: Keep-Alive”,才能启用Keep-Alive;

http 1.1中默认启用Keep-Alive,如果加入”Connection: close “才关闭。目前大部分浏览器都是用http1.1协议,也就是说默认都会发起Keep-Alive的连接请求了,所以是否能完成一个完整的Keep- Alive连接就看服务器设置情况。

开启Keep-Alive的优缺点:

优点:Keep-Alive模式更加高效,因为避免了连接建立和释放的开销。

缺点:长时间的Tcp连接容易导致系统资源无效占用,浪费系统资源。

四、自动重定向与跟随重定向


Redirect Automatically(自动重定向):只针对Get和Head请求,勾选此项则“跟随重定向”失效;自动重定向可以自动转向到最终目标页面,但是Jmeter是不记录重定向的过程内容,比如在察看结果树中是无法找到重定向过程内容的(A重定向到B,此时只记录B的内容不去记录A的内容)

Follow Redirects(跟随重定向):Http Request取样器的默认选项,当响应code是3xx时(301永久性转移,302暂时性转移),自动跳转到目标地址。与自动重定向不同,Jmeter会记录重定向过程中的所有请求响应,在查看结果树时可以看到服务器返回的内容,所以此时可以对响应的内容做关联。

五、internal server error是什么意思?


internal server error错误通常发生在用户访问网页的时候发生,该错误的意思是因特网服务错误。能够引起internal server error报错的原因有多个,如果你是网站主的话,可以对下列情形进行一一排查。

1、服务器资源超载

如果网站文件没有做过修改,最有可能的是同服务器的资源超载:即同一时间内处理器有太多的进程需要处理的时候,会出现500错误。借助SSH,可以在命令行中输入以下命令查看:ps faux ps faux |grep username 如果你查到某个进程消耗过多资源,可以用kill命令强制关闭这个进程,只需输入该进程的进程号(Pid):kill -9 pid。

2、文件权限设置错误

500错误还有可能是对文件设置了不正确的权限:后台目录和文件的权限默认应该是755,而图片,文字等html文件应该是644,所以如果在刚刚上传文件后出现500错误,应该主要检查文件权限设置。可以使用FTP软件选中所有文件,然后批量修改文件权限。

3、htaccess文件写入错误的代码

在使用某些wordpress SEO插件的时候,插件会改写.htacess文件,如果语法错误的话就有可能造成500错误!

六、Internal server error 500 问题解决思路


1、明确错误含义

500 Internal Server Error

通用错误消息,服务器遇到了一个未曾预料的状况,导致了它无法完成对请求的处理。没有给出具体错误信息。

根据这个描述,基本可以排除客户端以及网络因素,需要重点关注服务端的状态。

我们系统服务端的架构如下图:

接下来就要根据这个架构由前往后一层一层排查。

2、检查HAProxy

重点排查HAProxy当前是否可用,负荷是否超标,包括下面的一些指标。

| 排查项 | 结果 |

| — | — |

| CPU是否正常 | 正常 |

| 内存是否正常 | 正常 |

| 线程数是否超过配置上限 | 正常 |

| 连接数是否超过配置上限 |

正常

|

排查之后发现一切正常,与版本更新前的数据作比较,也没有出现大幅度波动。

而在查看请求日志时,发现大量500错误信息,说明HAProxy出异常的可能性较小,错误更可能来自HAProxy之后的环节。

3、检查Jetty

重点排查jetty的配置信息。

| 排查项 | 结果 |

标签: 压力测试 jmeter

本文转载自: https://blog.csdn.net/2401_86962969/article/details/141654691
版权归原作者 19252413648 所有, 如有侵权,请联系我们删除。

“【压力测试 2】JMeter压力测试之Internal server error 500 问题解决思路”的评论:

还没有评论