gpt4 book ai didi

docker - k8s上的Dockerized Spring Boot应用程序几乎占用了所有可用内存

转载 作者:行者123 更新时间:2023-12-02 20:46:22 25 4
gpt4 key购买 nike

我有一个简单的Spring Boot应用程序,部署在k8s(2个Pod)上。
简要描述了该应用程序从生产者那里获取消息并将其处理给消费者。没什么复杂的。

UPD:

  • Java版本:1.8.172
  • javaMemoryOpts:-Xmx2048m -XX:+ UnlockExperimentalVMOptions -XX:+ UseCGroupMemoryLimitForHeap

  • memory monitoring
    这是2个 Pane 之一的内存消耗。
  • 蓝线-k8s要求的内存
  • 橙色线-工作集
  • 绿线-服务使用
  • 黄线-k8s的内存限制

  • 问题是尽管服务简单,但内存使用率很高。
    我已经介绍过该应用程序,但是在服务方面似乎还可以:大约60个线程,没有内存泄漏等。

    已使用的内存永远不会超过k8s限制,即使它非常接近(没有OOM)。
    当然,我可以添加更多的 pod ,消耗量将变得均匀,但我认为这不是正确的方法。

    一件事使我感到困惑,为什么即使在开始时也总是使用超出要求的内存。

    实际上,我不知道这是怎么回事。是否有人有想法或可能知道如何减少应用程序的内存使用量?

    最佳答案

    通常,Kubernetes表示请求和限制机制,以便控制资源(CPU,内存)。请求任务旨在为群集Pod中的容器提供足够的资源。限制确保容器永远不会达到特定资源的定义值。浏览并访问以下文章:

  • Managing Compute Resources forContainers
  • How to use resource requests and limits inKubernetes
  • Managing-memory-and-cpu-resources-for-kubernetes-namespaces

  • 调整JVM是一个非常复杂的过程,要获得良好的结果和足够水平的计算系统利用率。我建议查看有关此主题的下一个Web链接:
  • Properly limiting the JVM’s memory usage
  • Why does my Java process consume more memory thanXmx
  • 关于docker - k8s上的Dockerized Spring Boot应用程序几乎占用了所有可用内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53081403/

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