Java 监测tomcat permgen
是否有监控tomcat内存使用的工具/方法,例如permgen,以避免出现如下问题。是的,我们可以增加内存和精简GC,但仍然可以进行一些监视。当达到某个关键内存消耗时,还需要发送警告电子邮件Java 监测tomcat permgen,java,tomcat7,out-of-memory,permgen,Java,Tomcat7,Out Of Memory,Permgen,是否有监控tomcat内存使用的工具/方法,例如permgen,以避免出现如下问题。是的,我们可以增加内存和精简GC,但仍然可以进行一些监视。当达到某个关键内存消耗时,还需要发送警告电子邮件 java.lang.OutOfMemoryError: PermGen space at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClassCond(ClassLoade
java.lang.OutOfMemoryError: PermGen space
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:632)
at java.lang.ClassLoader.defineClass(ClassLoader.java:616)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:1815)
at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:872)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1325)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1204)
at org.apache.catalina.startup.WebAnnotationSet.loadApplicationServletAnnotations(WebAnnotationSet.java:108)
at org.apache.catalina.startup.WebAnnotationSet.loadApplicationAnnotations(WebAnnotationSet.java:58)
at org.apache.catalina.startup.ContextConfig.applicationAnnotationsConfig(ContextConfig.java:297)
at org.apache.catalina.startup.ContextConfig.start(ContextConfig.java:1064)
at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:261)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:120)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4238)
at org.apache.catalina.core.StandardContext.reload(StandardContext.java:3083)
at org.apache.catalina.loader.WebappLoader.backgroundProcess(WebappLoader.java:404)
at org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1279)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1571)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1580)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1580)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1560)
at java.lang.Thread.run(Thread.java:662)
您可以使用这些监控系统之一 视觉的 或
JConsole-您可以打开选项来记录JVM内存使用情况,然后监视日志文件,并在permgen过高时发送电子邮件:
-XX:+PrintHeapAtGC
和-Xloggc:$catalina\u HOME/logs/gc.log
添加到catalina\u OPTS
。有关设置和选项的更多信息,请参见。以上假设您已经设置了$CATALINA_HOME
变量更新的问题,是否可以发送警告电子邮件?我们使用此产品对系统资源的消耗进行可视化监控和实时分析。这是开发工具。据我所知,这些程序无法发送通知。如果需要监视服务器和发送邮件,那么最好使用标准系统监视:zabbix、nagios。