我有几个spring boot Java应用程序,当hyper-v配置了动态内存时,它们会间歇性地出现异常。 我没有指定最小或最大Java内存选项,因为我不知道每个应用程序需要多少,因此我更希望Java为我做出决定。 所有应用程序都启动并似乎正在运行,但是有时它们只是停止响应,日志不指示任何错误或资源不足。 其他时候,应用程序运行良好。 我怀疑它与来自hyper-v的动态内存分配有关,但是因为它有时可以长时间工作,所以我不知道是什么原因造成的。 当我在本地计算机上运行它时,我没有这个问题,但是我没有在本地计算机上长时间运行。 当我的应用程序运行时,VM会使用虚拟机看到的50%到80%的内存,并且似乎并没有一直扩展到动态允许的最大内存数量。 关于如何确定它是否与Hyper-v动态内存相关的任何想法? 物理hyper-v服务器正在运行2012 R2,而虚拟机正在运行Windows Server2016。Java版本1.8.0_71 Java SE Runtime内部版本1.8.0_171-b11 Java Hotspot 64位服务器VM内部版本25.171-b11,混合模式。

#1楼 票数:0

我会在您的HV中检查流程的大小。 Java将使用的内存不仅仅是堆,因此,如果您的堆是虚拟机的80%,它将超过分配的内存并进行大量交换,这肯定会使该进程似乎停止运行。 这很可能会在GC上发生,从而使过程无响应。

我要检查的第一件事是发生这种情况时,IO正在执行多少IO读写操作,以及OS拥有的可用内存。

  ask by Brad translate from so

未解决问题?本站智能推荐:

1回复

使用tomcat启动springboot应用程序时出现java.lang.VerifyError

这是在其中一个部署环境中发生的,而它在其他 VM 上运行良好。 两个虚拟机具有相同版本的 JDK、tomcat 和 spring 版本。 我无法找到发生这种情况的任何原因。 可能是什么问题?
2回复

在tomcat中部署的Java应用程序中的异常行为

我已经将一个Spring 4应用程序部署到tomcat服务器,该服务器托管在CentOS VM的数字海洋云中。 该应用程序是一个移动后端应用程序,主要是Rest API。 JDK是openjdk版本“1.8.0_111”OpenJDK运行时环境(构建1.8.0_111-b15)OpenJDK
1回复

如何限制Java8应用程序消耗的总内存?

为了限制Java 7应用程序消耗的总内存,我可以使用以下公式(取自本文 ): 最大内存= [-Xmx] + [-XX:MaxPermSize] + number_of_threads * [-Xss] 删除PermGen后,此公式如何为Java 8应用程序更改? 我应该使用选项“-
1回复

以编程方式查找我的应用程序内存占用

我试图以务实的方式测量我的应用程序内存占用量。 我正在使用java.lang.management类来计算它 我假设两者的总和将给出应用程序使用的内存总量,但实际情况并非如此,top命令提供的实际大小更大。 所以我想知道我错过了什么? 除了获取应用程序的总内存使用量之外,我还需要添加
1回复

Java和Hyper-V

我正在尝试学习有关JAVA的知识,而做到这一点的最佳方法是创建我会实际使用的东西,并了解它的目的。 我正在尝试与HyperV(WMI库)进行通信。 例如,我发现以下内容,我的问题是:如何使用它? 我正在使用Netbeans创建GUI。 http://www.paulneve.com/
1回复

如果未在java8rcp应用程序中指定maxmetaspace参数,会发生什么?

如果您在未指定jvm参数MaxMetaspaceSize和metaspacesize的情况下启动并使用繁重的java 8 rcp桌面应用程序,会发生什么? 堆内存消耗的内存几乎就像非堆(元空间)消耗一样正常吗? 最后一个问题:非指定元空间大小参数会导致应用程序崩溃吗?
2回复

Java8奇数时序/内存问题

我遇到了一个在运行Java 8时可以创建的一个相当奇怪的问题。问题表现在JVM本身内部发生了某种时序错误。 它本质上是间歇性的,但很容易重现(至少在我的测试环境中)。 问题是显式设置的数组值在某些情况下被销毁并替换为0.0。 具体来说,在下面的代码中, array[0]在new Doubl
3回复

可能导致的默认Java堆大小和内存问题

我有一个应用程序,其后端基于Java 8构建。最近,我发现由于OOM,应用程序会自行重新启动。 通过查看Docker容器的退出状态,我了解了它是由于OOM而引起的。 没有为系统配置Xmx和Xms值,因此它应该使用默认堆大小,如果我的服务器有4个内存,则该大小应约为512 MB(我读了一些默认