运行标准的 tomcat 8.0.14,开箱即用,在托管公司运行。 我在 CentOS 服务器上使用 java jre1.8.0_05。从一开始唯一的改变就是改变一些端口。
到目前为止一切顺利,欢迎使用 Apache 消息,然后我的托管公司将其终止,因为它已经超过 1048 MB。所以我想我会在 setenv.sh 中设置最大内存
export JAVA_OPTS="-Djava.awt.headless=true -server -Xms48m -Xmx256m"
应该将最大内存设置为 256,但如果我部署 hello.war(基本上,运行 grails hello world,然后添加一个渲染,这是项目的休息),它只会继续增长。它现在高达 399 mb
那么有什么办法可以设置硬限制,为什么hello world会觉得需要399mb
有什么建议吗?
最佳答案
有没有OOM错误?如果是这样,请提供详细信息。 你用的是什么JDK?您是否监控堆使用情况以查明它是否与 Eden 或永久空间有关。 我建议使用 jvisualvm 等工具进行内存采样,以找出哪个类正在使用那么多内存。
肯定有什么东西正在吞噬你的内存,只有你进行采样才能找到。
或者,您也可以使用堆转储来找出正在增长的对象。
关于java - apache-tomcat-8.0.14 中的内存泄漏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26316591/