java进程使用93%的内存而不是OutOfMemory

时间:2018-03-09 08:15:15

标签: java memory jvm

我有一个java进程A, 我使用60线程并发来进行压力测试, 15个小时后,它使用了93%的内存。但是stil正在运行,只是请求非常慢。

我收到了转储文件。但堆或堆栈没有什么异常。 什么时候没有请求。记忆力还没有下降。在两次完整的gc期间。记忆释放到68%,现在是49%。

我为什么徘徊?以及如何检查哪些东西占用了大量内存。 这个过程只做三件事:

  1. 获取dubbo请求。
  2. check param。
  3. 发送至rabbitMQ

1 个答案:

答案 0 :(得分:0)

您可以使用jmap生成一个headpump来查看堆内容。根据所使用的GC算法,java进程可能会在触发GC循环之前填充其所有可用内存。看看-XX:CMSInitiatingOccupancyFraction参数