Tomcat 用完了 PermGen 空间,即使保留了很多 PermGen 空间

标签 tomcat tomcat7 out-of-memory permgen

运行 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/

相关文章:

java - InflateException 使用滑行加载图像时发生

在 Tomcat 8 上启动 Spring 应用程序时出现 java.lang.IllegalAccessError

java - 让本地部署的模块轻松加入集成环境的流程

java - 从 Maven POM 文件中读取属性文件

java - 制作多图安卓游戏,如何避免多图报java.lang.OutOfMemory错误

delphi - "Exception of type ' System.OutOfMemoryException ' was thrown"一次编译多个项目时

windows - 如何在本地的 Tomcat 中运行 Solr 4?

eclipse - Maven 提供部署在 Juno + Tomcat 7 上的范围

java - eclipse 中的 Tomcat WTP : route all requests to same Servlet

java - ClassCastException 数据源无法转换为 javax.sql.ConnectionPoolDataSource