AEM 的 JMX 控制台中 SessionStatistics 的含义

Posted

技术标签:

【中文标题】AEM 的 JMX 控制台中 SessionStatistics 的含义【英文标题】:Meaning of SessionStatistics in AEM's JMX console 【发布时间】:2019-03-29 15:02:26 【问题描述】:

几天后,我的 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 服务器上创建的所有会话的列表?

【问题讨论】:

【参考方案1】:

我想知道这些代表什么?这些是活跃的会话吗?或者这是在 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

【讨论】:

以上是关于AEM 的 JMX 控制台中 SessionStatistics 的含义的主要内容,如果未能解决你的问题,请参考以下文章

AEM6从带有-debug -nofork选项的控制台开始

AEM 6.0 Web 控制台捆绑包(OSGi 捆绑包)中安装的包未正确安装(状态应为活动未安装)

只有在配置文件或 Page 指令中将 enableSessionState 设置为 true 时,才能使用会话状态。还请确保在应用程序配置的 // 节中包括 System.Web.SessionSta

Apache ActiveMQ 浏览器无法连接到 JMX 控制台

使用 JSch 通过 SSH 隧道访问生产环境中的 JMX

aem中的橡木版本升级