【问题标题】:Identifing components' memory in the JVM识别 JVM 中组件的内存
【发布时间】:2016-04-06 19:52:16
【问题描述】:

我们有几个团队在一个 JVM 中运行服务器组件。

当出现内存问题时,我们需要知道每个组件占用了多少内存(或者谁应该为OOME 负责:-))。

是否有任何通用技术可以帮助识别每个组件的内存使用情况?

我知道内存转储及其分析工具,但在某些情况下,由于图表等复杂,分析非常复杂。 我想知道是否有一些高级技术,如私有堆或监控每个组件内存的有效方法。

【问题讨论】:

  • “组件”是什么意思?
  • 如果您的参考图非常复杂,那应该是一个警告信号。
  • 在组件中,我只是指应用程序的不同应用部分。 @Kedar Mhaswade

标签: java memory out-of-memory


【解决方案1】:

我会使用像 Flight Recorder 中内置的内存分析器。

这可以让您细分最大用户的内存使用情况。我会根据这个列表来查看大部分内存被保留在哪里。

【讨论】:

  • 使用-XX:+HeapDumpOnOutOfMemoryError 启动VM 也非常有用,尤其是在您的内存泄漏不容易重现的情况下。
  • @biziclop 我也倾向于增加堆大小,但我会为了更小的堆转储而减少它。
猜你喜欢
  • 2020-12-16
  • 1970-01-01
  • 2011-06-29
  • 1970-01-01
  • 2013-03-19
  • 1970-01-01
  • 2015-06-15
  • 1970-01-01
相关资源
最近更新 更多