gpt4 book ai didi

linux - Kubernetes Pod 报告的内存使用量多于实际进程消耗量

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:15:21 25 4
gpt4 key购买 nike

我有一个 Kubernetes Pod 有

  • 要求 1500Mb 的内存
  • 2048Mb 的内存限制

我在这个 pod 中运行了 2 个容器,一个是实际应用程序(重型 Java 应用程序)和一个轻量级日志传送器。

pod 始终报告 1.9-2Gb 的内存使用情况。因此,部署被扩展(设置了自动扩展配置,如果内存消耗 > 80%,则扩展 pod),自然会导致更多 pod 和更多成本

黄线代表应用内存使用情况

enter image description here

然而,经过更深入的调查,这就是我的发现。

在应用程序容器内执行时,我运行了top命令,它报告总共有16431508 KiB或大约16Gb的memory available,即机器上可用的内存。

应用程序容器内运行着 3 个进程,其中根进程(应用程序)占用了 5.9% 的内存,大约为 0.92Gb。

log-shipper 只占用 6Mb 内存。

现在,我不明白的是为什么我的 pod 一直报告如此高的使用指标。我错过了什么吗?由于意外的自动缩放,我们产生了巨大的成本,并希望解决这个问题。

最佳答案

在 Linux 中,未使用的内存被视为浪费内存,这就是为什么所有“空闲”RAM i。 e.应用程序或内核本身未使用的内存积极用于缓存 IO 操作、文件系统元数据等,但会在需要时提供给您的应用程序。

您可以在此处获取有关容器内存消耗的详细信息:

/sys/fs/cgroup/memory/docker/{id}/memory.stat

如果您想根据内存使用量扩展您的集群,最好只计算您的应用程序大小,而不是容器内存使用量。

关于linux - Kubernetes Pod 报告的内存使用量多于实际进程消耗量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52963152/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com