AEM 的 JMX 控制台中 SessionStatistics 的含义
Meaning of SessionStatistics in AEM's JMX console
几天后,我的 AEM 服务器变得无响应并崩溃。根据这篇文章 - https://helpx.adobe.com/experience-manager/kb/check-and-analyze-if-JCR-session-leaks-in-your-AEM-instance.html, on checking http://localhost:4502/system/console/jmx 我发现有超过 60,000 个 SessionStatistics 对象。我想知道这些代表什么?这些是活动会话吗?或者这是在 AEM 服务器上创建的所有会话的列表?
I would like to know what these represent? Are these active sessions? or is this the list of all the sessions ever created on AEM server?
是的,这些是当前在您的 AEM 服务器上的活动打开会话 运行 - 自您上次启动实例后创建。您可以从 /system/console/vmstat
找到上次启动时间,并且所有会话对象都将在 Last Started
时间之后有一个时间戳。您会注意到会话名称的时间戳。类似的东西。
"communities-user-admin@session-1132@25/10/2018 5:03:26 PM"
您发布的 link 已经指出了开放会话的潜在修复。
构建会话对象的另一个可能原因是低效的长 运行 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 服务器变得无响应并崩溃。根据这篇文章 - https://helpx.adobe.com/experience-manager/kb/check-and-analyze-if-JCR-session-leaks-in-your-AEM-instance.html, on checking http://localhost:4502/system/console/jmx 我发现有超过 60,000 个 SessionStatistics 对象。我想知道这些代表什么?这些是活动会话吗?或者这是在 AEM 服务器上创建的所有会话的列表?
I would like to know what these represent? Are these active sessions? or is this the list of all the sessions ever created on AEM server?
是的,这些是当前在您的 AEM 服务器上的活动打开会话 运行 - 自您上次启动实例后创建。您可以从 /system/console/vmstat
找到上次启动时间,并且所有会话对象都将在 Last Started
时间之后有一个时间戳。您会注意到会话名称的时间戳。类似的东西。
"communities-user-admin@session-1132@25/10/2018 5:03:26 PM"
您发布的 link 已经指出了开放会话的潜在修复。
构建会话对象的另一个可能原因是低效的长 运行 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