AWS:了解响应时间和ELB

时间:2017-04-02 20:01:55

标签: amazon-web-services nginx dns load-balancing

我试图为我的应用程序分析一些API请求,以便隔离任何潜在的瓶颈。但是,我在记录的一部分中看到了轻微的差异,所以我试图确保我没有遗漏任何东西。

基本设置

  • AWS Classic ELB(已启用交叉区域)
  • 余额为2个AWS t2.micro实例(临时服务器)

  • ec2框正在运行PHP 7.1和Nginx。

  • 这是一个SSL证书,但它终止于ELB。所以ELB通过端口80上的http连接到后端实例
  • 实例位于私有子网中,并通过NAT网关连接到Internet

收集数据

  1. 我有请求时间被记录在应用程序本身,这些请求被发送到Loggly(因此一旦请求到达应用程序代码,我们得到一个开始时间,一旦响应已经发送给应用程序,我们得到结束时间)

  2. AWS ELB访问日志

  3. CURL请求启用total_time的给定端点

  4. 结果(针对给定端点)

    1. 申请请求时间

      • 我看到应用程序请求时间 0.05-0.08 秒。这是发送给Loggly的数据
    2. AWS ELB访问日志

      • 这些日志提供3个数字:
        • 请求处理时间: 0.00004秒
        • 后端处理时间: 0.05 - 0.09秒
        • 响应处理时间: 0.00004秒
    3. CURL

      • 现在,运行一个看起来大致如下的CURL命令:
    4. curl -s -w "%{time_total}\n" -o /dev/null www.google.com

      我获得的total_time结果来自: ~0.17 - .5秒

      因此,似乎应用程序日志和ELB访问日志显示类似的结果。但是,似乎通过CURL的整体请求时间可以 ~3x - 慢6倍

      如果是这样的话,可能会导致什么?我的第一个想法是,它需要时间来连接到ELB,或者我们可能会对DNS解析感到不满。

      然后我尝试使用Apache Benchmark进行一些基本测试,这似乎证实了某种连接问题。连接结果为** ~0.07 - 0.5秒**

      但是,由于这些时间不会出现在AWS ELB访问日志中,我还是相信这与DNS解析有关吗?如果是这样,我该如何进一步调查?

      目前,我的域名已在LiquidWeb上注册,并且有一条CNAME记录,该记录指向AWS提供的ELB DNS名称

0 个答案:

没有答案