Hibernate OutOfMemoryError:无法创建新的本机线程AWS

Hibernate OutOfMemoryError:无法创建新的本机线程AWS,hibernate,grails,amazon-web-services,amazon-ec2,out-of-memory,Hibernate,Grails,Amazon Web Services,Amazon Ec2,Out Of Memory,我的Grails应用程序部署在Tomcat6中的AWSEC2实例中。我遇到的问题是,它无法启动并不断获取错误:OutOfMemoryError:无法创建新的本机线程。当我运行VisualVM时,似乎创建了很多线程,大约1000多个。我对使用这个工具不太熟悉,似乎无法确定代码的哪个部分创建了这么多线程。我注意到,当我禁用hibernates二级缓存或将net.sf.ehcache.hibernate.EhCacheProvider更改为net.sf.ehcache.hibernate.Single

我的Grails应用程序部署在Tomcat6中的AWSEC2实例中。我遇到的问题是,它无法启动并不断获取错误:OutOfMemoryError:无法创建新的本机线程。当我运行VisualVM时,似乎创建了很多线程,大约1000多个。我对使用这个工具不太熟悉,似乎无法确定代码的哪个部分创建了这么多线程。我注意到,当我禁用hibernates二级缓存或将net.sf.ehcache.hibernate.EhCacheProvider更改为net.sf.ehcache.hibernate.SingletonEhCacheProvider时,线程数量显著减少。有没有一个工具可以基本上帮助我确定在我的代码中哪些地方导致了线程创建的大量增加?

在显示堆栈方面做得很好。纽舍利也是。有些东西维护得很差,例如。

在显示堆栈方面做得很好。纽舍利也是。有些东西维护得很差,比如。

您需要增加内存设置。进入tomcat的
bin/setclasspath.sh
,并在末尾追加以下行:

export CATALINA_OPTS="-Xmx1024m  -XX:MaxPermSize=512m"
我将其用于一个相当大的应用程序,因此您可以运行内存设置,例如:

export CATALINA_OPTS="-Xmx512m  -XX:MaxPermSize=256m"

但这取决于应用程序的大小。

您需要增加内存设置。进入tomcat的
bin/setclasspath.sh
,并在末尾追加以下行:

export CATALINA_OPTS="-Xmx1024m  -XX:MaxPermSize=512m"
我将其用于一个相当大的应用程序,因此您可以运行内存设置,例如:

export CATALINA_OPTS="-Xmx512m  -XX:MaxPermSize=256m"

但这取决于你的应用程序的大小。

你在使用弹性豆茎吗?你在使用弹性豆茎吗?你在使用弹性豆茎吗?