运行Load Test jmeter时504网关超时

问题描述 投票:0回答:1

我一直致力于在jmeter上执行负载测试,每秒500个用户。我正在使用JMeter。在运行负载测试时,我不断收到登录API的错误。以下是我发送和接收超时的请求和响应。

样品申请

POST https://example.com//9000/v1/api/user/login

POST data:
{
        "email":"[email protected]",
        "password":"abcdef"
}

[no cookies]

Request Headers:
Connection: keep-alive
Content-Type: application/json
: 
Content-Length: 79
Host: botstest.smartbothub.com
User-Agent: Apache-HttpClient/4.5.3 (Java/1.8.0_151)

样品回复

Thread Name: Thread Group 1-310
Sample Start: 2017-12-27 11:30:06 IST
Load time: 61422
Connect Time: 1148
Latency: 61422
Size in bytes: 363
Sent bytes:286
Headers size in bytes: 171
Body size in bytes: 192
Sample Count: 1
Error Count: 1
Data type ("text"|"bin"|""): text
Response code: 504
Response message: Gateway Time-out

Response headers:
HTTP/1.1 504 Gateway Time-out
Server: nginx/1.10.3 (Ubuntu)
Date: Wed, 27 Dec 2017 06:01:07 GMT
Content-Type: text/html
Content-Length: 192
Connection: keep-alive


HTTPSampleResult fields:
ContentType: text/html
DataEncoding: null

服务器的nginx配置文件如下所示。 https://drive.google.com/file/d/1_XWYeqSAWZz6dtnTTCeLOEMzDwvEWwY1/view

nginx jmeter gateway
1个回答
1
投票

很可能您的Nginx服务器过载,因此无法及时处理请求导致错误。

它可能是由几个问题引起的:

  1. Nginx服务器只缺少硬件资源(CPU,RAM,网络或磁盘)。通过使用JMeter PerfMon Plugin监视Nginx端的上述资源,确保它有足够的空间来运行
  2. Nginx服务器配置不适合高负载。默认配置可能不适合处理500个并发用户,因此请查看How to Configure nginx for Optimized Performance文章,了解您的设置是否符合建议。基本上,您需要将第1点和第2点组合在一起以获得大部分Nginx设置,如果计算机相对空闲并且您的响应时间和/或吞吐量都很低 - 您的Web应用程序或基础架构设置都会出现问题。
  3. 它可能是您的应用程序的问题,它不能比Nginx超时生成响应更快。查看其日志并使用profiling tools检查发生了什么 - 它将允许您检测应用程序花费大部分时间的位置
  4. 这可能是网络基础设施问题,即您使用WiFi而不是LAN或路由器出现故障或您达到了公司代理的限制。使用像Wireshark这样的嗅探器工具来捕获网络流量也是一个好主意

但首先是读取日志:JMeter日志,Nginx日志,操作系统日志,存在和相关的任何内容。很可能你会从中找出原因。

© www.soinside.com 2019 - 2024. All rights reserved.