内存泄漏与spring-boot执行器InMemoryAuditEventRepository

时间:2018-05-02 09:41:53

标签: spring-boot spring-boot-actuator

我在Spring-boot应用程序中遇到内存泄漏,在使用Eclipse MAT进行heapdump分析之后,它指出了Spring启动执行器中的潜在内存:恰好使用InMemoryAuditEventRepository(审计事件)。

One instance of "org.springframework.boot.actuate.audit.InMemoryAuditEventRepository" loaded by "sun.misc.Launcher$AppClassLoader @ 0xe7020a30" occupies 210 676 784 (57,25%) bytes. The memory is accumulated in one instance of "org.springframework.boot.actuate.audit.AuditEvent[]" loaded by "sun.misc.Launcher$AppClassLoader @ 0xe7020a30".

Keywords
org.springframework.boot.actuate.audit.InMemoryAuditEventRepository
org.springframework.boot.actuate.audit.AuditEvent[]
sun.misc.Launcher$AppClassLoader @ 0xe7020a30

禁用此内存中审核事件的最佳方法是什么:

  1. 删除spring-boot-acturtor依赖
  2. management.endpoints.enabled逐默认=真
  3. endpoints.auditevents.enabled =假
  4. 提前致谢

1 个答案:

答案 0 :(得分:0)

遇到相同的发现...

经过一些调查,发现这不是泄漏,而是Spring Boot存储了最后的4000个Security(登录)审计事件。它将增长到该数量,然后保持在那里...

您可以创建自己的实现,然后将其写到Cache或DB中,而不将其保留在内存中。.

Reference