4

我在 tomcat7 和 Linux 服务器上运行 grails 2.2.4 应用程序。我在 JavaMelody 监控(插件)中看到打开了 1000 多个 http 会话,而只有大约 10 个用户登录。此外,所有未连接到用户的会话(如果是,我可以看到用户名)的可序列化大小为 1.607b (用户会话有-1b)。

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

任何帮助,将不胜感激。

4

1 回答 1

1

嗯,您是否使用过多的闪光灯范围?

只要您使用 flash 作用域,Grails 就会创建一个 HTTP 会话。该会话的生命周期取决于 web.xml 中的配置,但默认为 30 分钟。

如您所见,如果很多人同时(或在半小时窗口内)访问启用了 Flash 的页面,您的应用程序最终会出现大量活动会话。

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

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

但是,如果您希望用户登录并且不必每分钟都登录,这并不理想!在这种情况下,您应该避免在不需要登录用户的页面中使用 Flash。

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

于 2014-05-30T14:01:42.153 回答