Akka 内存不足问题

问题描述 投票:0回答:1

我们使用Akka(使用JAVA)框架向后端服务器发送消息。我们的应用程序在5-6小时内工作正常,发送了大约160万条消息。然后它变得没有响应。分析GC日志后,我们发现JVM是无法清理堆内存。我们进行了堆转储并使用 Eclipse 内存分析工具对其进行了分析。它向我们展示了内存泄漏的两个可能原因,如下所述,两者都与 AKKA 有关。

“akka.actor.LocalActorRef”的一个实例占用 393,842,136 (42.88%) 字节。内存累积在由“sun.misc.Launcher$AppClassLoader

”加载的“scala.collection.immutable.RedBlackTree$BlackTree”的一个实例中

“akka.actor.RepointableActorRef”有 8,774 个实例,占用 419,071,456 (45.62%) 字节。这些实例是从“java.util.HashMap$Node

”的一个实例引用的

一旦完成工作,我们将杀死所有演员及其相应的孩子。此外,我们还将覆盖监督策略,并确保在出现任何异常时它会杀死演员。

所有这些都无助于在堆中堆积对象。是否有任何特定方法可以确保 akka 系统不会与 actor 泄漏 一旦完成工作,我们就会杀死所有演员及其相应的孩子。此外,我们还会覆盖监督策略,并确保在出现任何异常时它会杀死演员。

所有这些都无助于在堆中堆积对象。是否有任何特定方法可以确保 akka 系统不会与 actor 发生泄漏

java performance akka
1个回答
0
投票

我们的 Actor 模型作业也遇到同样的错误? 像 LocalActorRef 特征这样的接缝正在使用巨大的内存。 但没有找到哪个类调用了LocalActorRef。

错误:-

sun.misc.Launcher$AppClassLoader @对象内存地址加载的 akka.actor.LocalActorRef 的一个实例占用 7,17,31,97,576 (99.72%) 个字节。

© www.soinside.com 2019 - 2024. All rights reserved.