【问题标题】:Mirth Connect JVM doesn't release memory?Mirth Connect JVM 不释放内存?
【发布时间】:2020-07-10 15:28:09
【问题描述】:

几个月来,我们一直在尝试将 Mirth Connect docker 容器用于一些集成项目。我们看到内存使用量随着时间的推移而上升,最终总是崩溃。

当您停止向频道发送消息时,内存使用不会下降。好像垃圾收集没有运行?然后,当您再次开始发送消息时,它会从上次停止的地方开始增加内存占用。

每个人都在谈论增加 JVM 堆,我们已经多次这样做了,甚至将其设置为荒谬的值。但是如果 JVM 不恢复旧内存,那么堆内存限制就无关紧要了,你只是在它崩溃之前争取时间。

你做了哪些 JVM 属性或 Mirth 配置来恢复未使用的内存以保持容器稳定?

https://hub.docker.com/r/nextgenhealthcare/connect

【问题讨论】:

  • 垃圾收集器确实运行,否则你会得到 OutOfMemory;但它不会 un-commit 内存回操作系统(无论您的 docker 使用什么)。但很可能您的问题源于一个完全不同的问题。 JVM 进程 more 只是堆......我假设eventually crashes 意味着它与cgroup limit 一起死亡?如果是这样,请从阅读 this 开始。
  • this

标签: garbage-collection jvm heap-memory mirth


【解决方案1】:

当消息进入频道时,您没有清理一些正在打开/创建的资源。在测试中,我已经向一个频道发送了超过 1 亿条消息,没有任何内存问题。我会检查正在创建和未关闭的数据库连接。我要看的第二件事是在地图中对一些值进行排序。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-03-04
    • 2017-06-29
    • 2021-10-12
    • 1970-01-01
    • 2011-06-30
    • 2016-09-14
    • 2015-08-19
    • 2012-05-15
    相关资源
    最近更新 更多