【问题标题】:Tomcat limit http sessions, out of memoryTomcat限制http会话,内存不足
【发布时间】:2015-07-08 15:31:02
【问题描述】:

我的 Tomcat 8 服务器经常出现内存不足。 我的猜测是Tomcat不限制内存中http会话的数量,所以如果你得到足够多的用户,那么服务器最终会耗尽内存。

我知道您可以像这样在 web.xml 中设置会话超时,

<session-config>
        <session-timeout>30</session-timeout>
</session-config>

但是,如果您在 30 分钟内获得大量用户,这将无济于事。 我搜索了很多方法来限制会话数量,但令人惊讶的是没有找到太多信息。似乎这将是一个常见问题,因为默认情况下 Tomcat 保证在高负载时会耗尽内存。

那么,如何设置 http 会话数的限制,以使 Tomcat 在达到该限制时最老的过期?这似乎是不耗尽内存的唯一合乎逻辑的方法。

【问题讨论】:

  • tomcat.apache.org/tomcat-8.0-doc/config/manager.html 引用了一个 maxActiveSessions 参数...
  • 您有多少活动会话?
  • 提示:而不是猜测:创建一个堆转储(java_home/bin/jmap)并使用eclipse MAT之类的工具来分析堆......因为......我不认为它是会话,只要没有数千个会话和/或会话存储大量信息...
  • 有数千个会话,只有在高负载时才会耗尽内存
  • 问题更多的是“没有http会话限制的tomcat怎么不会内存不足”,如果没有限制,如果你有足够的用户它将耗尽内存

标签: java tomcat out-of-memory httpsession


【解决方案1】:

每当出现 OOM 时,根据我的经验,这是因为服务器配置不佳,GC 问题。堆转储会如上面所建议的那样显示更多信息,否则,它将有助于提供服务器(内存)、JAVA_OPTS 设置的详细信息。

【讨论】:

    猜你喜欢
    • 2016-08-13
    • 1970-01-01
    • 2013-01-10
    • 1970-01-01
    • 2015-04-18
    • 1970-01-01
    • 1970-01-01
    • 2021-12-13
    • 2012-11-13
    相关资源
    最近更新 更多