【问题标题】:504 gateway timeout while runnning the Load Test jmeter运行负载测试 jmeter 时出现 504 网关超时
【发布时间】:2017-12-27 06:39:35
【问题描述】:

我一直致力于在 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

【问题讨论】:

  • A 504 可能表示 nginx(或上游应用)负载过高,无法正常响应。
  • 那么如何解决这个问题,我需要更改我的 nginx 配置吗?
  • 配置?可能没有太多可做的。您可以查看tuning guide。但我的猜测是,您正在运行的物理服务器可能已经超载。检查服务器的 CPU 使用率。
  • 你需要在 ngynx 中增加超过 60 秒的超时时间

标签: nginx jmeter gateway


【解决方案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 日志、操作系统日志,任何存在且相关的内容。很可能你会从他们那里找出原因。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-02
    • 2021-03-03
    • 2020-12-05
    • 1970-01-01
    • 2020-03-21
    • 1970-01-01
    相关资源
    最近更新 更多