运行 Tomcat 失败并出现 java.lang.OutOfMemoryError
- 与缺少 PermGen 空间相关的错误。
我最近将 Tomcat 更改为以自己的用户(而非 root)运行。
我尝试将 CATALINA_OPTS
中的 PermGen
大小增加到 512MB 和 1024MB,但似乎没有任何效果。
我还通过(暂时)为用户提供与 root 用户相同的限制来排除 ulimit
限制。
最佳答案
解决方案原来是磁盘空间不足。
Tomcat 和我们的应用程序日志/配置文件所在的分区几乎已满。
随着分区逐渐变满,我们的日志框架开始在尝试写入日志文件时抛出 IOException
(而不是 PermGen 错误)。 IOEXceptions 给了我解决问题所需的提示)运行 df
显示分区已满。
将日志文件移动到另一个分区可以解决问题,并让我们以自己的(非根)用户身份运行 Tomcat。
关于Tomcat 用完了 PermGen 空间,即使保留了很多 PermGen 空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24527170/