【问题标题】:Debug high CPU usage in Azure WebApp (Linux)在 Azure WebApp (Linux) 中调试高 CPU 使用率
【发布时间】:2018-03-17 13:59:53
【问题描述】:

我已经设置了一个 Azure WebApp (Linux) 来运行 WordPress 和其他手工制作的 PHP 应用程序。一切正常,但我得到了这个奇怪的 CPU 使用率图表(见下文)。

这两个应用程序都是 PHP7.0 容器。

通过 SSH 连接到两个容器并使用 top 我没有发现异常占用 CPU 的进程。

当我重置两个应用程序时,CPU 恢复正常,然后开始缓慢升高,如下所示。

对应用程序的 HTTP 请求量与 CPU 使用率完全无关。

我尝试使用 apache2ctl 查看是否有任何待处理的请求,但这似乎无法在 docker 容器内完成。

有人知道如何找出原因吗?

这是顶部的输出。该实例有 2 个核心。大量空闲时间,但仍然超过 100% 的负载,并且没有进程使用 CPU ...

【问题讨论】:

  • 在本地运行同一个容器会发生什么?
  • 我无权访问实际容器,因为它是在您创建 WebApp 时由 Azure 自动设置的。我可以通过 SSH 登录,但仅此而已。
  • 你做的,他们都在 GitHub 上 - hub.docker.com/r/appsvc
  • 谢谢。我尝试使用 7.0 容器,但由于一些奇怪的“文件夹存在”错误而无法启动它。不过 7.2 确实运行良好,我看不到任何 CPU 使用率增加。该站点似乎与 7.2 兼容,因此我现在将更新实时站点并查看它是否可以解决问题。如果不是,至少我无法在本地进行测试。
  • 与 PHP 7.2 相同的问题。我在本地容器上重放了两周的请求,但效果不一样。

标签: azure docker azure-web-app-service


【解决方案1】:

在与 MS Support 就该问题进行处理后,似乎可以归结为 WordPress 主题缓慢或效率低下。每个请求都花费了很长时间并占用了 CPU 资源。以下所有请求都开始排队,从而增加了 CPU 负载。

为什么它不会在顶部显示为 %CPU 我没有解释。

他们建议使用不同的主题或升级到多核实例。

我对该解决方案不满意,并将进一步监控并尝试找出真正的罪魁祸首。

【讨论】:

    【解决方案2】:

    我的 CPU 百分比图几乎和你一样,虽然是 Node.JS 应用程序而不是 PHP。 Disabling Diagnostic Logs > Docker Container Logging 似乎已经为我解决了这个问题。

    我不需要这些日志,因为我正在记录应用程序洞察。

    但是,在您的情况下,您可能需要更多这些日志。我对此没有解决方案,但我猜测更重的日志轮换或通过其他方式减小日志的大小可能会有所帮助

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-10-11
      • 1970-01-01
      • 2016-07-29
      • 2022-11-04
      • 2011-05-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多