Java Grails应用程序中的类加载器内存泄漏
我有一个运行在tomcat上的grails应用程序,它似乎在泄漏类装入器,运行了大约2周后,它抛出了OOME。然而,我无法找出问题的根本原因。我们将非常感谢您对如何解决此问题的任何帮助 已安装Grails插件 JMAP输出Java Grails应用程序中的类加载器内存泄漏,java,grails,memory-leaks,groovy,out-of-memory,Java,Grails,Memory Leaks,Groovy,Out Of Memory,我有一个运行在tomcat上的grails应用程序,它似乎在泄漏类装入器,运行了大约2周后,它抛出了OOME。然而,我无法找出问题的根本原因。我们将非常感谢您对如何解决此问题的任何帮助 已安装Grails插件 JMAP输出 我想知道executor插件是否是由于concurrentHashMap条目数量太多的罪魁祸首。我在不同的时间使用jmap检查了我自己的类的实例数量,它们似乎没有增加。我该如何着手解决这个问题,即使你能为我提供一种解决这个问题的方法,那也太好了。谷歌快速搜索提供了以下来源:
我想知道executor插件是否是由于concurrentHashMap条目数量太多的罪魁祸首。我在不同的时间使用jmap检查了我自己的类的实例数量,它们似乎没有增加。我该如何着手解决这个问题,即使你能为我提供一种解决这个问题的方法,那也太好了。谷歌快速搜索提供了以下来源:
如果您觉得这是一个插件问题,那么删除插件并进行测试有多困难?谷歌快速搜索提供了以下来源:
如果您觉得这是一个插件问题,那么删除插件并进行测试有多困难?可能值得一试。它现在也可以发现permgen泄漏,并且该功能目前是免费的。可能值得一试。它现在也可以发现permgen泄漏,并且此功能暂时是免费的。确保这不是在重新部署应用程序后发生的著名的“tomcat permgen space”错误。不存在著名的“tomcat permgen space”错误。每一个永久oom都是由于应用程序或其库中的错误造成的。我已经关闭并重新启动了tomcat以及应用程序,但这种情况仍然发生。因此,我想可以排除这个错误。请确保这不是一个著名的“tomcat permgen space”错误,即在重新部署应用程序后发生的错误。没有所谓的“tomcat permgen space”错误。每一个永久oom都是由于应用程序或其库中的错误造成的。我已经关闭并重新启动了tomcat以及应用程序,但这种情况仍然发生。所以我想这是可以排除的。这是一个在生产中的应用程序。所以移除插件会有点困难。但我想我可以在本地删除它并试用。这是一款生产应用程序。所以移除插件会有点困难。但我想我可以在本地删除它并尝试一下。
app.grails.version=1.3.7
app.name=bm
app.servlet.version=2.4
app.version=0.1
plugins.database-migration=1.0
plugins.executor=0.3
plugins.export=0.9
plugins.google-visualization=0.5
plugins.hibernate=1.3.7
plugins.mail=1.0-SNAPSHOT
plugins.quartz=0.4.2
plugins.spring-security-core=1.2.1
plugins.tomcat=1.3.7
num #instances #bytes class name
----------------------------------------------
1: 140060 18764192 <constMethodKlass>
2: 164561 17114344 org.codehaus.groovy.runtime.metaclass.MetaMethodIndex$Entry
3: 140060 16817936 <methodKlass>
4: 14326 15583816 <constantPoolKlass>
5: 157629 14203608 [C
6: 14326 12833728 <instanceKlassKlass>
7: 71899 10928648 java.lang.reflect.Method
8: 12865 9810400 <constantPoolCacheKlass>
9: 155186 9471320 <symbolKlass>
10: 28791 9364696 [B
11: 164650 7903200 java.util.concurrent.locks.ReentrantLock$NonfairSync
12: 164496 7895808 java.util.concurrent.ConcurrentHashMap$Segment
13: 154748 7427904 java.util.HashMap$Entry
14: 137621 7235504 [Ljava.lang.Object;
15: 178058 7122320 java.lang.String
16: 164496 5876008 [Ljava.util.concurrent.ConcurrentHashMap$HashEntry;
17: 25224 5322656 [Ljava.util.HashMap$Entry;
18: 16359 4774824 [Lorg.codehaus.groovy.util.ComplexKeyHashMap$Entry;
19: 6456 3368704 <methodDataKlass>
20: 69962 3358176 org.codehaus.groovy.util.SingleKeyHashMap$Entry
21: 59890 3353840 java.lang.ref.SoftReference
22: 69222 3322656 java.lang.ref.WeakReference
23: 31530 3026880 java.beans.MethodDescriptor
24: 22579 2890112 java.lang.reflect.Field
25: 897 2824728 [Lorg.codehaus.groovy.runtime.metaclass.MetaMethodIndex$Entry;
26: 15006 2761104 java.lang.Class
27: 45281 2592272 [I
28: 23921 2487784 org.codehaus.groovy.reflection.CachedMethod
29: 46947 1877880 java.util.ArrayList
30: 58290 1865280 org.codehaus.groovy.util.FastArray
31: 21968 1832888 [[I
32: 56895 1792872 [Ljava.lang.Class;
33: 34 1681456 [Lorg.apache.commons.collections.map.AbstractHashedMap$HashEntry;
34: 46489 1661760 [Ljava.lang.String;
35: 10267 1562376 [Ljava.util.concurrent.ConcurrentHashMap$Segment;
36: 12511 1501320 java.lang.reflect.Constructor
37: 30817 1479216 java.util.concurrent.ConcurrentHashMap$HashEntry
38: 17869 1248784 [S
39: 19447 1244608 java.util.HashMap
40: 20885 1169560 groovy.lang.MetaBeanProperty