运行Load Test jmeter时504网关超时

时间:2017-12-27 06:39:36

标签: nginx jmeter gateway

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

示例请求

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

POST data:
{
        "email":"xyz@yopmail.com",
        "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

1 个答案:

答案 0 :(得分:1)

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

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

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

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