【问题标题】:Linux Java Application Memory Leak DetectionLinux Java 应用程序内存泄漏检测
【发布时间】:2020-02-14 05:07:32
【问题描述】:

我有一个 spring 应用程序,它从 S3 加载大量数据并推送到 RedShift。我已将其托管在具有 64GB RAM 的机器上。第一次部署完成时,我运行 free 命令时可用的空闲内存为 44 GB。

第二天当我运行相同的命令时,可用内存将减少到 30 GB,依此类推。我在 /tmp 目录中有很多 .hprof 文件,我想找出这种可用内存减少的原因。谁能帮我解决这个问题?

【问题讨论】:

  • JVM认为允许使用多少内存
  • Xmx 和 Xms 设置为 4 GB
  • 附上 jvisualvm 看看发生了什么。

标签: java linux memory memory-leaks heap-memory


【解决方案1】:

查找内存泄漏的好工具是 JConsole。完整文档here

您还应该查看应用程序的代码,哪些对象被实例化并保留在那里(例如单例)。请记住,垃圾收集器永远不会释放单例的所有引用。

我还会检查您正在使用的任何库是否可能存在内存泄漏问题。

【讨论】:

    猜你喜欢
    • 2011-12-23
    • 1970-01-01
    • 2018-01-17
    • 2011-10-09
    • 1970-01-01
    • 1970-01-01
    • 2015-11-17
    • 2013-04-16
    • 2013-04-26
    相关资源
    最近更新 更多