【问题标题】:How can I influence the direct buffer memory?如何影响直接缓冲存储器?
【发布时间】:2022-02-02 12:03:21
【问题描述】:

我有一个问题,我的应用程序部署在容器中,并且我永久且稳定地捕获了内存不足。

我尝试使用 -xx:MaxDirectMemorySize 来限制缓冲内存,结果我发现另一个内存不足的情况是直接缓冲内存。我陷入了一个恶性循环,也许有人知道决定吗? 应用程序不使用 DirectByteBuffer,但内存正在增长。我使用 Spring Boot 2.3.12。

【问题讨论】:

标签: java spring-boot jvm


【解决方案1】:

我遇到了类似的问题。 请提供有关您的环境的更多详细信息:linux 内核版本、linux 分发版本、java 版本和提供程序、内存分配管理器(如果已更改)、容器化工具版本。

我的建议是使用 async-profiler 来验证内存泄漏调用堆栈帧https://github.com/jvm-profiling-tools/async-profiler。 然后尝试更改默认内存分配器 akka malloc。我强烈推荐它使用这个https://github.com/jemalloc/jemalloc,请看看这个实现。

【讨论】:

    猜你喜欢
    • 2020-04-25
    • 1970-01-01
    • 2018-08-20
    • 1970-01-01
    • 2015-12-03
    • 2011-07-02
    • 2018-06-13
    • 2011-07-25
    • 1970-01-01
    相关资源
    最近更新 更多