【问题标题】:How to see if a pod is topping its CPU limit?如何查看一个 pod 是否超过了它的 CPU 限制?
【发布时间】:2018-11-08 16:31:27
【问题描述】:

我在 kubernetes 中有一个 pod,它在重负载下会变慢。 pod 有两个容器——Nginx 和 PHP。

我看到 Nginx 设置为使用“100m”CPU,而 PHP 设置为使用 1 个 CPU(1 个核心)。我怀疑 Nginx 可能是瓶颈,但我很难确定它。

这是我为 nginx 设置的 Kube。

 resources:
      limits:
        cpu: 100m
        memory: 128M
      requests:
        cpu: 100m
        memory: 128M

当我 SSH 进入 Nginx 容器并使用“top”命令时,我几乎总是看到 1% 的 CPU。我从来没有看到它超过 1%。

7 nginx 20 0 31972 2360 972 S 0.7 0.0 7:07.94 nginx 1 root 20 0 31480 1784 976 S 0.0 0.0 0:00.01 nginx

这是否意味着 Nginx 容器被限制为 1% 的 CPU 使用率,因为我将 CPU 请求设置为 100m?

我读对了吗?还是有一种标准的方式来读取 pod 中单个容器的 CPU 使用情况?

【问题讨论】:

    标签: nginx kubernetes


    【解决方案1】:

    要检查使用最多内存和 CPU 的 pod,您可以使用 kubectl top 命令,但它不会根据最高使用率对 pod 进行排序。您只能看到 Pod 的当前使用情况。

    $ kubectl top pod --all-namespaces
    NAMESPACE NAME CPU(cores) MEMORY(bytes)
    kube-system kube-proxy-gke-rel3170-default-pool-3459fe6a 2m 12Mi
    kube-system kube-proxy-gke-rel3170-default-pool-3459fe6a 2m 12Mi
    kube-system fluentd-gcp-v2.0.9-5t9q6 8m 85Mi
    kube-system fluentd-gcp-v2.0.9-pd4s9 10m 84Mi
    

    但是它不显示 pod 的配额限制。它只显示 pod 的当前 CPU 和内存使用情况。 希望这会有所帮助。

    【讨论】:

    • 是的,这就是我正在使用的......但这无助于确定导致减速的原因。
    【解决方案2】:

    无论如何,您都需要重新设计您的设置。

    • 在单独的 pod 上独立运行和扩展 nginx
    • 在不同的 pod 上运行 php 应用程序

    【讨论】:

    • 是的,这就是计划。我就是这样发现的。
    • @Moon 请注意,您当前的设置是 k8s 世界中的反模式
    【解决方案3】:

    使用 Kubernetes 仪表板分析您的 pod。

    要部署你需要使用“kubectl proxy”命令。

    kubectl 代理

    为您的 kube 仪表板配置创建一个令牌,您将能够通过仪表板监控您的 pod。

    您可以查看以下视频https://www.youtube.com/watch?v=RNgjy31gFuI

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-12-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多