grails中的大量http会话

时间:2014-05-30 07:17:42

标签: grails tomcat7 java-melody

我在tomcat7和Linux服务器上运行grails 2.2.4 app。我在JavaMelody监控(插件)中看到有超过1000个http会话打开,而只有大约10个用户登录。还有更多,所有那些没有连接到用户的会话(如果是,我可以看到用户名)具有可序列化大小1.607b(用户会话有-1b)。

我很好奇是否有问题 - 我有其他应用程序,大小非常相似,在200多个用户的同一台服务器上运行,还有大约200个会话 - 如果有的话,我该怎么做才能解决这个问题或找到原因。

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:1)

嗯,你使用过多的闪光灯吗?

一旦使用flash scope,Grails就会创建一个HTTP会话。该会话的生命周期取决于web.xml中配置的内容,但默认情况下为30分钟。

正如您所看到的,如果很多人同时(或半小时窗口内)点击启用闪存的页面,您的应用程序最终将会有大量活动会话。

一个'修复'是通过编辑web.xml将会话超时减少到更低的值

<session-config>
    <!-- 1 minute timeout for benchmarking -->
    <session-timeout>1</session-timeout> 
</session-config>

虽然您希望用户登录而不必每分钟登录,但这并不理想!在这种情况下,您应该避免在不需要登录用户的页面中使用闪存。

来源:http://grails.github.io/grails-howtos/en/performanceTuning.html