记一次网关服务性能测试中遇到的几个问题

目录

1. 背景

2. 工具

3. 问题

4. 参考资料


1. 背景

对网关服务nginx进行并发测试,分别使用了JMeter和nGrinder工具进行测试。在测试过程中遇到工具本身、参数配置等问题。

2. 工具

JMeter v5.2.1

Kong

nginx

nGrinder-3.4.3

3. 问题

1)JMeter:请求响应中出现类似提示:socket closed。

原因:在JMeter中发送HTTP请求时,缺省选择 HttpClient4 实现。在并发量较大时,可能出现连接数过大导致请求关闭的情况。

解决:

在HTTP请求-》Advanced-》Client implementation中,选择Implementation为Java。

记一次网关服务性能测试中遇到的几个问题_第1张图片

2)JMeter:并发量稍微大一些(约超过50线程数)时,JMeter的控制台中出现类似报错:java.lang.OutOfMemoryError: Java heap space。

原因:由于并发数,监控或者日志记录的原因,导致JMeter内存消耗较大

解决:

打开jmeter.bat文件,修改参数。这里参数大小要根据所在物理机内存进行设置,不能超过物理机内存的一半

默认:HEAP="-Xms512m -Xmx512m"

修改:HEAP="-Xms1024m -Xmx1024m"

也可以参考:https://www.cnblogs.com/hd-test/p/12176579.html

3)改用nGrinder进行测试。并发数较大后,日志中出现报错:ERROR Connection establishment timed out。

原因:并发数并未达到nGrinder单机上限,这里是由于Kong以及nginx的超时参数配置导致。

解决:

  • nGrinder脚本中修改超时参数:

  • 修改Kong的超时参数。60ms(缺省)-》999ms
  • 修改nginx的超时参数:在nginx.conf中修改.
proxy_connect_timeout    999;
proxy_read_timeout       999;
proxy_send_timeout       999;

4)客户端日志报错:ERROR Premature EOF encountered。响应信息被截取

原因:服务端性能瓶颈。通过扩展服务器实例未再出现该问题。但后面发现,并发数达到一定大小后,无论如何扩展实例,服务端的TPS都变化不大,网卡带宽已被沾满(性能瓶颈)。

4. 参考资料

https://blog.csdn.net/qq_24699007/article/details/83892511 -- nginx中的超时参数设置

https://blog.csdn.net/basicworld/article/details/100693547 -- nginx中出现响应被截断的原因和解决方法

你可能感兴趣的:(测试工具,性能测试,云计算,nginx,服务器)