我的JBoss服务器出现了一个奇怪的问题:引发的异常:
我寻找内存不足的情况,但内存可用性看起来很好:
Heap Configuration:
MinHeapFreeRatio = 40
MaxHeapFreeRatio = 70
MaxHeapSize = 2147483648 (2048.0MB)
NewSize = 2228224 (2.125MB)
MaxNewSize = 4294901760 (4095.9375MB)
OldSize = 4194304 (4.0MB)
NewRatio = 2
SurvivorRatio = 8
PermSize = 16777216 (16.0MB)
MaxPermSize = 805306368 (768.0MB)
Heap Usage:
PS Young Generation
Eden Space:
capacity = 176816128 (168.625MB)
used = 110937856 (105.798583984375MB)
free = 65878272 (62.826416015625MB)
62.741932681616014% used
From Space:
capacity = 38207488 (36.4375MB)
used = 27193584 (25.933822631835938MB)
free = 11013904 (10.503677368164062MB)
71.17344118514151% used
To Space:
capacity = 40960000 (39.0625MB)
used = 0 (0.0MB)
free = 40960000 (39.0625MB)
0.0% used
PS Old Generation
capacity = 1434451968 (1368.0MB)
used = 818386128 (780.4738311767578MB)
free = 616065840 (587.5261688232422MB)
57.052180641575866% used
PS Perm Generation
capacity = 113246208 (108.0MB)
used = 109507808 (104.43478393554688MB)
free = 3738400 (3.565216064453125MB)
96.69887401439526% used
以前有没有人遇到过这个GC异常,当时似乎内存很大?
这个错误意味着垃圾收集器付出了巨大的努力,但实际工作却很少,另一个症状是,即使不执行任何繁重的任务,应用程序也会变得非常慢,因为它大部分时间都在运行GC,但不要相信我的话,大多数JDK都包括许多工具,如jstat,可以用来监视GC的行为,
根据oracle文档:
如果在垃圾收集中花费了太多时间,并行收集器将抛出一个OutOfMemoryError:如果在垃圾收集中花费了超过98%的总时间,而回收的堆不到2%,则将抛出一个OutOfMemoryError。此特性旨在防止应用程序运行很长时间,但由于堆太小而几乎没有进展或没有进展
如果需要,可以通过在命令行中html" target="_blank">添加选项-xx:-usegcoverheadlimit来禁用此功能
然而,它会带走错误信息,但不会带走潜在的原因,查看内存状况并不像是内存耗尽,所以增加堆大小也没有帮助,很可能问题出在代码的某个地方,检查应用程序中内存最密集的点,寻找可能创建大量对象但没有释放它们的地方,并找到一种方法,要么不创建太多对象,要么在不再需要它们时尽可能释放它们。
我使用Jmeter将工作负载注入部署在AWS EC2实例上的应用程序。测试必须非常庞大:它持续10个小时,工作负载配置文件具有双峰形状,在5分钟内大约有2600个请求。实际上我有一个m3。部署应用程序的xlarge实例,8 m3。xlarge实例每个实例运行一个jmeter实例。使用python脚本,要注入的工作负载在8个客户机实例之间进行分割,因此在示例中,如果原始工作负载要注入800个请求,那
在Android Studio1.5.1只是通过移动源代码从一个系统到另一个即使干净的构建是成功的,但当代码运行我得到这种错误 java.lang.OutOfMemoryError: GC开销限制超过错误:任务': app: dexDebug'执行失败。 我在应用程序中添加了以下代码。格拉德尔还:
我的Hippo应用程序失败主要是在与我的数据库进行连接时,GC开销超过了限制,有时低于错误。 javax。jcr。RepositoryException:未经检查的异常:java。lang.OutOfMemoryError:Java堆空间 我试图尽可能地清理我的后端。我知道垃圾收集器占用的时间太长,每次运行时恢复的内存很少。所以我需要更新我的堆大小,也可以使用-XX:-usegcoveredlim
使用当我尝试构建我的项目时,这种错误越来越多: 错误:任务“:app:CompiledEbugJavaWithJavac”执行失败。OutofMemoryError:超出GC开销限制 有什么办法解决这个问题吗?
我正在尝试预处理一个大的txt文件(10G),并将其存储在二进制文件中以备将来使用。当代码运行时,速度会减慢,并以 异常线程"main"java.lang.OutOfMemoryError: GC开销限制超过 输入文件具有以下结构 这是我正在使用的代码: 基本上,它通过in文件并将数据存储到对象HMbicnt(这是一个哈希映射)。一旦在第二列中遇到新值,它应该将对象写入输出文件,释放内存并继续。
问题内容: 我正在尝试建立一个包含2台服务器的Gridgain集群。 使用 GridDataLoader 将.csv文件中的数据(100万至5000万个数据)加载到Gridgain 。 从加载的数据中找到最小值,最大值,平均值等, 当在Eclipse中作为独立应用程序运行时,我得到正确的输出。 但是,在建立集群(eclipse环境中的2个服务器中的2个节点+我的Eclipse环境中的1个节点)的同