java - Tomcat限制http session ,内存不足

标签 java tomcat out-of-memory httpsession

我有一个经常耗尽内存的 Tomcat 8 服务器。 我对发生的情况的猜测是 Tomcat 不限制内存中的 http session 数,因此如果您有足够的用户,那么服务器最终会耗尽内存。

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

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

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

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

最佳答案

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

关于java - Tomcat限制http session ,内存不足,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31297209/

相关文章:

tomcat - 在 spring-boot 上重新加载外部配置运行时

linux - 是否可以延迟 Linux OOM Killer 并运行我的进程?

android - 从家回来后应用程序崩溃

java - 如何解决 java.lang.OutOfMemoryError : Java heap space in the case when increasing the heap size will mean delayed OutOfMemoryError

java - 我应该避免多部分/表单请求吗?

java - 返回接口(interface)类型对象的方法

java - 如何修复 Tomcat 中的 log4j 警告消息

java - 在 Spring MVC 中,在哪里启动和结束计数器来测试速度执行时间?

java - 如何获取 Eclipse 项目资源管理器中的完整文件路径?

Tomcat 无法启动应用程序并超时——日志中的最后一行只是单词 "bad"