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 的含义的主要内容,如果未能解决你的问题,请参考以下文章
AEM 6.0 Web 控制台捆绑包(OSGi 捆绑包)中安装的包未正确安装(状态应为活动未安装)
只有在配置文件或 Page 指令中将 enableSessionState 设置为 true 时,才能使用会话状态。还请确保在应用程序配置的 // 节中包括 System.Web.SessionSta