【问题标题】:python requests taking 100% of cpupython请求占用100%的cpu
【发布时间】:2020-03-22 20:19:48
【问题描述】:

我们的一个 API 服务器存在 CPU 使用问题。 API 用 python 编写并在 ubuntu AWS EC2 实例中配置。此应用程序使用 Python 2.7 和 Django 1。这可以通过代理传递通过端口 80 访问。 有时我们在日志中收到 499 个请求,此时 $htop 值显示服务器中的 CPU 使用率为 100%。唯一的 python 需要在这个服务器上运行。但在 AWS cloudwatch 监控中,情况并非如此。只有 40% 到 50%。

PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND
23086 root      20   0  815776  96056  12792 S  100  4.7   2:43.12 python                                                                      
24041 root      20   0  292756  92820  12696 S  8.0  4.5   0:33.73 python                                                                      
24072 root      20   0  815656  95696  12792 S  5.3  4.7   0:28.27 python 

请帮助 TIA

【问题讨论】:

  • 我们能提供什么帮助?您没有向我们提供有关该应用正在做什么的任何信息,也没有显示任何代码。

标签: python django ubuntu nginx amazon-ec2


【解决方案1】:

您很可能使用双核服务器,并且您的 python 进程是单线程的,并且使用尽可能多的 CPU(一个核心)。

因此 htop 和 cloudwatch 之间存在差异:

  • 在 htop 中的“100%”表示“一个 cpu 核心”,因此总 CPU 使用率最高可达 200%
  • 在 cloudwatch 中报告的 cpu 使用率是核心之间的平均值,这解释了 50%(一个核心为 100%,另一个为 0%)

【讨论】:

    猜你喜欢
    • 2012-03-10
    • 2012-12-29
    • 1970-01-01
    • 1970-01-01
    • 2022-12-15
    • 2011-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多