Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Tomcat限制http会话,内存不足_Java_Tomcat_Out Of Memory_Httpsession - Fatal编程技术网

Java Tomcat限制http会话,内存不足

Java Tomcat限制http会话,内存不足,java,tomcat,out-of-memory,httpsession,Java,Tomcat,Out Of Memory,Httpsession,我有一个Tomcat8服务器,它经常内存不足。 我猜想Tomcat并没有限制内存中http会话的数量,因此如果您有足够的用户,那么服务器最终将耗尽内存 我知道您可以在web.xml中设置会话超时,如下所示 <session-config> <session-timeout>30</session-timeout> </session-config> 30 但是,如果你在30分钟内获得了大量用户,这是没有帮助的。 我搜索了很多来

我有一个Tomcat8服务器,它经常内存不足。 我猜想Tomcat并没有限制内存中http会话的数量,因此如果您有足够的用户,那么服务器最终将耗尽内存

我知道您可以在web.xml中设置会话超时,如下所示

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

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


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

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

引用maxActiveSessions参数…您有多少活动会话?提示:不要猜测:创建堆转储(java_home/bin/jmap)并使用eclipse MAT等工具分析堆。。。因为。。。我不认为是会话的问题,只要没有数千个会话和/或会话存储了大量信息……有数千个会话,它只会在高负载时耗尽内存问题更多的是“tomcat在没有http会话限制的情况下如何不耗尽内存”,如果没有限制,如果您有足够的用户,它将耗尽内存