【问题标题】:Will a Worker Tier always be at CPU 100% Load?工作层是否始终处于 CPU 100% 负载?
【发布时间】:2014-12-26 08:15:03
【问题描述】:

我有一个在 Elastic Beanstalk Worker Tier 上运行的网络爬虫,并且一直在运行。当队列为空时,它会再次加载所有新的 url 并继续前进。它永远不会是空的。

无论我设置了多少线程或进程,我的 CPU 负载都是 100% 使用微型实例,我对此有点困惑,我很想听听一些意见。

加载 SQS 时 CPU 处于 100% 是否“正常”?我猜该实例将在一条消息完成后立即继续从 SQS 读取消息,这意味着即使我将实例升级到小型或大型实例,它仍将处于 100% CPU 负载,唯一的不同之处在于它可以在相同的时间内发送更多消息。对吗?

第二个问题是 100% CPU 负载是否有什么大问题?在日志中,有时我会收到诸如Script timed out before returning headers: application.py 之类的超时错误。我想这可能与负载过高有关(?),如果是这样,我可以防止它或以某种方式降低 CPU 负载吗?

【问题讨论】:

    标签: amazon-web-services amazon-ec2 amazon-elastic-beanstalk amazon-sqs


    【解决方案1】:

    对我来说,解决方案是从 t1 微型实例迁移到 t2 微型实例。

    【讨论】:

      【解决方案2】:

      跑top的时候,ST值是多少?

      偷取值下面的例子是0.0%

      top - 13:01:16 up 161 days, 22:49,  1 user,  load average: 0.00, 0.00, 0.00
      Tasks:  88 total,   1 running,  87 sleeping,   0 stopped,   0 zombie
      Cpu(s):  0.0%us,  0.0%sy,  0.0%ni, 99.8%id,  0.2%wa,  0.0%hi,  0.0%si,  0.0%st
      Mem:   1695600k total,  1585988k used,   109612k free,   345484k buffers
      Swap:        0k total,        0k used,        0k free,   527696k cached
      

      我相信这是因为您使用的是 Micro 实例,您无需为访问所有底层 CPU 周期付费。当您预置微型实例时,Amazon 不会让您访问 100% 的现代、快速 CPU;这只是他们确保您获得的 CPU 周期不会超过您所支付的费用的问题。

      在中型实例上尝试您的应用程序,看看您是否得到相同的结果。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-04-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-03-15
        • 2019-11-04
        相关资源
        最近更新 更多