GC过多时如何更快OOM? [复制]

2024-03-27

有时,我的 JVM 会耗尽内存,但我可以从中恢复(或 heapDumpOnOOM 和调试)的 OOMing,它往往会在 GC 中颠簸数小时,然后抛出内存不足。 这本质上与(未回答的)问题相同:如何配置 Java GC 开销限制? https://stackoverflow.com/questions/25600720/how-can-i-configure-the-java-gc-overhead-limit但我怀疑答案是你无法调整 98%/2% 阈值,所以我要求有任何方法来达到类似的效果。注意过多的 GC,最好会导致 OOM,或者终止 JVM 等。


甲骨文的GC 人体工程学指南 https://docs.oracle.com/javase/8/docs/technotes/guides/vm/gc-ergonomics.html涵盖两个阈值的选项。GCTimeLimit and GCHeapFreeLimit。降低前者并增加后者应该会导致 OOM 更快发生。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

GC过多时如何更快OOM? [复制] 的相关文章

  • 线程上下文类加载器和普通类加载器的区别

    线程的上下文类加载器和普通类加载器有什么区别 也就是说 如果Thread currentThread getContextClassLoader and getClass getClassLoader 返回不同的类加载器对象 将使用哪一个
  • 多个对象以某种方式相互干扰[原始版本]

    我有一个神经网络 NN 当应用于单个数据集时 它可以完美地工作 但是 如果我想在一组数据上运行神经网络 然后创建一个新的神经网络实例以在不同的数据集 甚至再次同一组数据 上运行 那么新实例将产生完全错误的预测 例如 对 XOR 模式进行训练
  • Java中的整数缓存[重复]

    这个问题在这里已经有答案了 可能的重复 奇怪的Java拳击 https stackoverflow com questions 3130311 weird java boxing 最近我看到一个演示 其中有以下 Java 代码示例 Inte
  • GC 行为和 CLR 线程劫持

    我在书中读到关于GC的内容CLR via C 特别是关于 CLR 何时想要开始收集 我知道它必须在收集发生之前挂起线程 但它提到当线程指令指针到达安全点时它必须执行此操作 在它不在安全点的情况下 它会尝试快速到达安全点 并且这样做是通过hi
  • 匿名类*总是*维护对其封闭实例的引用吗?

    我正在处理一些代码 其中一个对象 foo 正在创建另一个对象 对象 bar 并将其传递给Callable 之后 foo 将返回 bar 然后我希望 foo 变得无法访问 即 可用于 垃圾收集 我最初的想法是创建Callable匿名 例如 c
  • Java 堆分析因 SIGABRT 崩溃

    我正在尝试分析由 C 编写的方法分配并插入的本机内存JVM通过JNI 我安装了 valgrind version valgrind 3 13 0 并尝试使用以下选项运行 JVM valgrind tool massif massif out
  • JVM GC 是否会在引用比较过程中移动对象,导致即使双方都引用同一个对象,比较也会失败?

    众所周知 GC 有时会在内存中移动对象 据我了解 只要在移动对象时 调用任何用户代码之前 更新所有引用 这应该是完全安全的 但是 我看到有人提到引用比较可能不安全 因为对象在引用比较过程中被 GC 移动 这样即使两个引用应该引用同一个对象
  • AtomicInteger 实现和代码重复

    警告 问题有点长 但分隔线以下的部分仅供好奇 Oracle 的 JDK 7 实现原子整数 http docs oracle com javase 7 docs api java util concurrent atomic AtomicIn
  • Java:VM 如何在 32 位处理器上处理 64 位“long”

    JVM 如何在 32 位处理器上处理 64 位的原始 long 在多核 32 位机器上可以并行利用多个核心吗 64 位操作在 32 位机器上慢了多少 它可能使用多个核心来运行不同的线程 但不会并行使用它们进行 64 位计算 64 位长基本上
  • jmap - 组织和堆操作会给 jvm 带来开销吗?

    正如标题所述 需要多少开销jmap histo and jmap heap分别带到jvm 如果一个内存敏感的 Java 进程处于OutOfMemory 例如 大约 96 的堆已满 并且无法通过 full gc 清除 其中一项操作是否有可能将
  • 如何将 JVM 选项传递给 SBT 以在运行应用程序或测试用例时使用?

    我想在运行我的应用程序或通过 SBT 对应用程序进行测试时指定 JVM 选项 具体来说 我需要能够为 JVM 提供 Djava security policy 参数 以便加载我的策略并用于测试 我怎样才能用 SBT 做到这一点 With x
  • 内存分配/释放瓶颈?

    在典型的实际程序中 内存分配 释放的瓶颈有多大 欢迎来自性能通常很重要的任何类型的程序的答案 malloc free 垃圾收集的正确实现是否足够快 以至于它只是少数极端情况下的瓶颈 或者大多数性能关键型软件会从尝试减少内存分配量或拥有更快的
  • 为什么Java编译器复制finally会阻塞?

    当使用简单的代码编译以下代码时try finally块中 Java 编译器产生以下输出 在 ASM 字节码查看器中查看 Code try System out println Attempting to divide by zero Sys
  • Java GC 中的压缩是什么?

    I read http www cubrid org blog tags Garbage 20Collection http www cubrid org blog tags Garbage 20Collection 文章提供了 Java
  • Perl 中如何释放内存?

    我的代码如下所示 my var my var new while 1 while my k v each var a sub v var A map var var new keys var new var new B sub a sub
  • 限制 Java 进程的总内存消耗(在 Cloud Foundry 中)

    与这两个问题相关 如何设置JVM的最大内存使用量 https stackoverflow com questions 1493913 how to set the maximum memory usage for jvm 什么会导致 jav
  • 项目“MyProject”具有比运行 Eclipse 更高的编译器选项

    我正在尝试重建 Hibernate 配置 但我得到了Wrong Compiler Settings错误 请在下面找到我的应用程序配置和错误的屏幕截图 问题是因为 Eclipse 运行在与我的项目中指定的不同的 JVM 上 我的机器上安装了两
  • Java 表达式树 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 是否有相当于 net的 LINQ 下的表达式树JVM 我想实现一些类似 LINQ 的代码结构Scala
  • 为什么当达到 InitiatingHeapOccupancyPercent 时 G1 不开始标记周期?

    根据文档 http www oracle com technetwork articles java g1gc 1984535 html XX InitiatingHeapOccupancyPercent 设置触发标记周期的Java堆占用阈
  • 垃圾收集器是否在单独的进程中运行?

    垃圾收集器是否在单独的进程中启动 例如 如果我们尝试测量某段代码所花费的进程时间 并且在此期间垃圾收集器开始收集 它会在新进程上启动还是在同一进程中启动 它的工作原理如下吗 Code Process 1 gt Garbage Collect

随机推荐