AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 1023408
Accepted
wti
wti
Asked: 2020-06-30 16:38:00 +0800 CST2020-06-30 16:38:00 +0800 CST 2020-06-30 16:38:00 +0800 CST

在我的系统上打开和关闭请求需要很长时间

  • 772

已编辑:我的 AWS 系统中有问题。每几个请求几乎都需要 130 秒的时间来回答。当我说一些时,我的意思是 5 到 25 左右。通常,如果您取消慢速请求并再次发送,它只会快速响应。我还注意到任何请求都会发生这种情况,而不仅仅是特定请求。服务器和后端看起来并没有超载。系统如下:

ALB with sticky sessions | 2 Web servers | DB on RDS

系统在大多数时候使用 curl 时响应良好,但是当它需要很长时间时,这是响应输出:

这是任何 URL 上的 curl 测量时间。

    time_namelookup:  0.004136
       time_connect:  130.117558
    time_appconnect:  130.125254
   time_pretransfer:  130.125340
      time_redirect:  0.000000
 time_starttransfer:  130.172553
                    ----------
         time_total:  130.172615

除了 之外,从time_connect页面加载之后的意义上说,请求很好。系统正常响应时间小于0.5秒。

我正在阅读有关此的内容,并且文档表明time_connect,与

“从客户端的角度来看,time_connect 是 TCP 三次握手。它在客户端发送 ACK 后立即结束 - 它不包括该 ACK 到达服务器所需的时间。它应该接近往返时间(RTT) 到服务器..."

这是从这里拍摄的。

补充:系统本身是 nginx-Python,运行在 ec2 实例上,RDS 上有 MySQL 数据库,它提供来自 s3 的静态内容,用户也可以上传自己的文件。来自本地主机上的服务器(nginx-python ec2 实例) curl 总是很好,它永远不会花费很长时间。这让我相信这与 LB 和在 python 主机上监听的 nginx 有关。

补充:我也试过只在后端留下一台机器,问题并没有消失。

我在 AWS Cloudwatch、应用程序日志或数据库监控上找不到任何有意义的东西。关于我应该研究什么或如何解决此问题的任何想法?

编辑 3 感谢下面的评论:

# curl -v -I -L -k -w "@time.txt" -s "https://my-site.com/url/"
*   Trying "
*   Trying IP.ONE.from.AWS...
* connect to IP.ONE.from.AWS port 443 failed: Connection timed out
* TCP_NODELAY set
* Connected to my-site.com (IP.TWO.from.AWS) port 443 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* successfully set certificate verify locations:
*   CAfile: /etc/ssl/certs/ca-certificates.crt

IP-ONE-from-AWS 和 IP-TWO-from-AWS 是来自我应该连接的 AWS 区域的 IP。

amazon-web-services curl amazon-alb response-time
  • 1 1 个回答
  • 274 Views

1 个回答

  • Voted
  1. Best Answer
    Michael - sqlbot
    2020-07-03T04:40:59+08:002020-07-03T04:40:59+08:00

    您已将负载均衡器放置在一个公有子网和一个私有子网中,这是一种无效配置,并且会导致与您观察到的行为类似的行为,因为一个均衡器为其所连接的每个子网分配了至少一个公有 IP。 .. 但根据定义,公共 IP 地址不起作用,除非子网是公共子网。

    面向 Internet 的负载均衡器只需连接到公共子网。它们不需要附加到部署它们背后的实例(或应该部署)的私有子网或任何其他私有子网上。

    或者,您可能打算将平衡器放置在两个公共子网中,但其中一个具有错误配置的 VPC 路由表或网络 ACL,它具有相同的净效应,并且在您连接到该 IP 地址时会阻止流量。

    • 2

相关问题

  • 与 AWS 中的其他系统相比,CentOS 报告的总内存较低

  • 如何在 Amazon Linux 服务器上升级到 Java 1.8?

  • 了解 Amazon AWS 使用数据

  • 亚马逊提供的负载均衡服务体验如何?

  • ELB 中现有节点的 AWS 自动缩放问题

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve