Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/343.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java应用程序不一致状态_Java_Multithreading_Jvm - Fatal编程技术网

Java应用程序不一致状态

Java应用程序不一致状态,java,multithreading,jvm,Java,Multithreading,Jvm,我发现我的整个应用程序都搞砸了。第一根圆木被拿走了。应用程序似乎在每一个固定的时间间隔后都会冻结,每一分钟左右就会冻结将近半分钟。执行大部分任务的常规线程似乎已经丢失,并且没有它们的踪迹。所有这些都是从日志记录中提取的。根据用户的报告,套接字似乎已挂断 还是很少有线索,是什么引发了这一切。CPU使用记录显示当时一切正常。让我来猜猜,你能指出一个起点或任何一个我想不出来的具体例子吗?我能找到这些混乱的可能原因 谢谢, Mawia为什么不尝试使用基于示例的监视工具连接到程序,看看线程和JVM子系统在

我发现我的整个应用程序都搞砸了。第一根圆木被拿走了。应用程序似乎在每一个固定的时间间隔后都会冻结,每一分钟左右就会冻结将近半分钟。执行大部分任务的常规线程似乎已经丢失,并且没有它们的踪迹。所有这些都是从日志记录中提取的。根据用户的报告,套接字似乎已挂断

还是很少有线索,是什么引发了这一切。CPU使用记录显示当时一切正常。让我来猜猜,你能指出一个起点或任何一个我想不出来的具体例子吗?我能找到这些混乱的可能原因

谢谢,
Mawia

为什么不尝试使用基于示例的监视工具连接到程序,看看线程和JVM子系统在做什么?JDK随附,易于使用。

为什么不尝试使用基于示例的监视工具连接到程序,看看线程和JVM子系统在做什么?JDK随附,易于使用。

在内存有限的虚拟机上运行大量使用GC的java应用程序时,我遇到过这种情况。来宾操作系统没有足够的“物理”内存,因此使用了交换内存。但交换是在映射到主机操作系统物理磁盘的“虚拟”磁盘上进行的

当在来宾操作系统上运行的java GC开始工作时,它必须从实际上位于主机操作系统物理磁盘上的堆中移除垃圾

我不想说你们的情况是相同的,但可能是相似的。所以,试着检查您有多少物理内存,GC运行的频率有多高,以及它试图清除多少内存。你给了你的JVM 1GB。你有足够的物理内存吗?可能您的JVM堆实际上位于OS交换内存中,即磁盘上


试着调查你的申请。它是否有可能分配巨大的内存并过于频繁地清理?是否可以使用缓存等?检查perm gen使用了多少内存,短生命对象如何使用my

在内存有限的虚拟机上运行大量使用GC的java应用程序时,我遇到过这种情况。来宾操作系统没有足够的“物理”内存,因此使用了交换内存。但交换是在映射到主机操作系统物理磁盘的“虚拟”磁盘上进行的

当在来宾操作系统上运行的java GC开始工作时,它必须从实际上位于主机操作系统物理磁盘上的堆中移除垃圾

我不想说你们的情况是相同的,但可能是相似的。所以,试着检查您有多少物理内存,GC运行的频率有多高,以及它试图清除多少内存。你给了你的JVM 1GB。你有足够的物理内存吗?可能您的JVM堆实际上位于OS交换内存中,即磁盘上


试着调查你的申请。它是否有可能分配巨大的内存并过于频繁地清理?是否可以使用缓存等?检查perm gen使用了多少内存,短生命对象如何使用my

你检查过内存使用情况吗?JVM的堆限制是多少?我的意思是
-Xmx
命令行选项。如果代码太大,请缩小您的问题区域并将其发布在此处。我可以告诉您,定期冻结间隔可能是因为您无意中延迟了线程,但如果不查看代码,就无法真正知道这是否正确。在未知系统上进行系统测试/调试,具有未知的配置、未知的负载、未知的测试用例等都是错误的。'对于一个有经验的开发人员来说,这确实非常困难。通过团体博客做这件事只是。。。听着,你必须这么做。你有系统、调试器、测试用例、文档、体验、日志输出、用户报告等等。我们在一个小组博客上有7行文本。你给我们的东西我们无能为力。经验法则-如果你不能将错误缩小到足以发布的大小,我们也无能为力。你检查过内存使用情况了吗?JVM的堆限制是多少?我的意思是
-Xmx
命令行选项。如果代码太大,请缩小您的问题区域并将其发布在此处。我可以告诉您,定期冻结间隔可能是因为您无意中延迟了线程,但如果不查看代码,就无法真正知道这是否正确。在未知系统上进行系统测试/调试,具有未知的配置、未知的负载、未知的测试用例等都是错误的。'对于一个有经验的开发人员来说,这确实非常困难。通过团体博客做这件事只是。。。听着,你必须这么做。你有系统、调试器、测试用例、文档、体验、日志输出、用户报告等等。我们在一个小组博客上有7行文本。你给我们的东西我们无能为力。经验法则-如果你不能缩小错误大小到足以发布的代码范围,我们也无能为力。啊!这已经附加了。但所有这些都发生在过去,当时没有人监控系统。啊!但所有这些都发生在过去,当时没有人对系统进行监控。