1

几天后,我的 AEM 服务器变得无响应并崩溃。根据这篇文章 - https://helpx.adobe.com/experience-manager/kb/check-and-analyze-if-JCR-session-leaks-in-your-AEM-instance.html,在检查http:// /localhost:4502/system/console/jmx我发现有超过 60,000 个 SessionStatistics 对象。我想知道这些代表什么?这些是活跃的会话吗?或者这是在 AEM 服务器上创建的所有会话的列表?

4

1 回答 1

2

我想知道这些代表什么?这些是活跃的会话吗?或者这是在 AEM 服务器上创建的所有会话的列表?

是的,这些是当前在您的 AEM 服务器上运行的活动打开会话 - 自您上次启动实例后创建。您可以找到上次开始的时间,/system/console/vmstat并且所有会话对象都将在该时间之后有一个时间戳Last Started。您会注意到会话名称的时间戳。类似的东西。

"communities-user-admin@session-1132@25/10/2018 5:03:26 PM"

您发布的链接已经表明开放会话的潜在修复。

建立会话对象的另一个可能原因是长时间运行的 JCR 查询效率低下(没有索引的查询、非常广泛的谓词等)。由于内存使用量的增加(如果在启动脚本中未指定 mem 参数),这可能会导致垃圾收集的增加,分析gc.log可能会提供一些见解。如果您非常清楚查询会导致会话对象的建立,则可以在启动脚本中使用这些参数来优化正在使用的资源。

 -Doak.queryLimitInMemory=1000 -Doak.queryLimitReads=1000 -Dupdate.limit=1000 -Doak.fastQuerySize=true

要查找 的位置gc.log,请使用lsof

lsof -p ${JAVA PID} | grep gc.log
于 2018-10-25T06:17:03.463 回答