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

目录

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。

9034db48f1bd17fde17c8e19ac13d2b7.png

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脚本中修改超时参数:

dadb85bb5ea317de7e7b3170ec5df8ce.png

修改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中出现响应被截断的原因和解决方法

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值