2016-10-10 71 views

回答

0

基本上活动会话的数目是现有或以前的浏览器或具有独特JSESSIONID cookie值其他连接的数量。只要有人用浏览器打开网页,就会启动一个新的会话,并为该会话分配一个唯一的JSESSIONID。如果使用相同的JSESSIONID(作为cookie或url参数传输)执行下一次命中,则会话计数保持不变。如果参数未传输,则创建新的会话。 通常,所有浏览器都将会话ID Cookie保留在多个请求中,甚至包含多个选项卡或窗口(当然,隐身标签/窗口除外)。

有多种原因,您的会话数比你的用户数量较大。

  • 会话在tomcat中持续一段时间,默认为2小时。您可以在tomcat设置中更改此金额。因此,如果100个用户在第一个小时内登录到您的应用程序,并且100秒内,则即使前100个用户空闲,您的总会话数也将为200。
  • 机器人像谷歌机器人往往造成吨会议。如果您的网页是公开的,请检查访问日志,如果有一些漫游器访问您的网页。

  • 如果您的应用程序是负载均衡器或代理被连续“”查验其可用性的应用程序背后,这个ping命令可以创建会议以及。

  • 最后,还有很多“搞笑”方式您的应用程序可以从浏览器的请求,例如搜索结果的预取和类似。
  • 另外请记住,会话绑定到网站的域名。因此,如果用户通过多个域名连接到您的网站(例如www.domain.com的内容和static.domain.com的图像),每个连接都会有自己的会话。

现在,有不同的方法来防止不必要的会话创建,具体取决于您确切的问题是什么(以及它是否是一个问题)。

  • 如果您的应用程序的某些部分不需要会话,请确保您的代码中某处不要调用request.getSession()。同样在jsp中,您可以明确地关闭会话<%@ page session="false" %>
  • 会话超时降低以使它们在tomcat/conf/web.xml中更快过期<session-config><session-timeout>30</session-timeout></session-config> 会话超时值以分钟为单位。

最后,如果你有兴趣在什么在你的应用真的发生了,让自己像MoSKito

问候 的APM(应用性能管理)工具莱昂

相关问题