Java Tomcat和数据存储远程访问器内存不足

Java Tomcat和数据存储远程访问器内存不足,java,google-app-engine,tomcat,google-cloud-datastore,remote-access,Java,Google App Engine,Tomcat,Google Cloud Datastore,Remote Access,我们正在开发一个web应用程序,它在计算引擎环境中的Tomcat上运行。我们将Google数据存储作为DB进行开发,并使用数据存储远程访问器连接到DB。 应用程序非常简单,工作正常,但是在没有特定原因的情况下,经过一段时间后,CPU使用率从0%急剧增加到100%,Tomcat会出现内存不足错误。从日志中看,没有任何活动,但在一段时间后JVM失败,tomcat发出内存不足错误 在使用数据存储远程访问器api从计算引擎机器连接到数据存储方面,我们是非常新的。出于这个原因,我们想知道是否有一些最佳实践

我们正在开发一个web应用程序,它在计算引擎环境中的Tomcat上运行。我们将Google数据存储作为DB进行开发,并使用数据存储远程访问器连接到DB。 应用程序非常简单,工作正常,但是在没有特定原因的情况下,经过一段时间后,CPU使用率从0%急剧增加到100%,Tomcat会出现内存不足错误。从日志中看,没有任何活动,但在一段时间后JVM失败,tomcat发出内存不足错误

在使用数据存储远程访问器api从计算引擎机器连接到数据存储方面,我们是非常新的。出于这个原因,我们想知道是否有一些最佳实践可以遵循,或者是否有人已经遇到了同样的问题

谢谢 西蒙尼

异常:java.lang.OutOfMemoryError从线程“HandshakeCompletedNotify线程”中的UncaughtExceptionHandler引发

异常:从线程“ajp-apr-8009-AsyncTimeout”中的UncaughtExceptionHandler引发java.lang.OutOfMemoryError

异常:从线程“AsyncFileHandlerWriter-856419764”中的UncaughtExceptionHandler引发java.lang.OutOfMemoryError

异常:java.lang.OutOfMemoryError从线程“Keep Alive Timer”中的UncaughtExceptionHandler引发


异常:java.lang.OutOfMemoryError从线程“ContainerBackgroundProcessor[StandardEngine[Catalina]]中的UncaughtExceptionHandler抛出。

您可以使用jdk工具(jmap)将内存转储到文件系统。然后你可以使用像eclipse mat这样的内存分析器。它的报告会在大多数情况下指出问题所在,…谢谢,我会试试的