gpt4 book ai didi

java - 崩溃发生在本地代码中的 Java 虚拟机之外

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:12:22 25 4
gpt4 key购买 nike

我正在一台具有 32 个虚拟处理器和 32GB 内存的 Sun 服务器上进行网络爬虫。

我打开了 1460 个线程来为我完成这项工作。我设置的运行时参数是-Xms2048-Xmx2048。我已经运行了两次代码,但它在不同的地方崩溃了。

> #
> # A fatal error has been detected by the Java Runtime Environment:
> #
> # SIGSEGV (0xb) at pc=0xff390f38, pid=3053, tid=7640
> #
> # JRE version: 6.0_15-b03
> # Java VM: Java HotSpot(TM) Server VM (14.1-b02 mixed mode solaris-sparc )
> # Problematic frame:
> # C [libc_psr.so.1+0xf38] memset+0x78
> #
> # If you would like to submit a bug report, please visit:
> # http://java.sun.com/webapps/bugreport/crash.jsp
> # The crash happened outside the Java Virtual Machine in native code.
> # See problematic frame for where to report the bug.
> #
>

编辑:我将线程数减少到 40,并在同一台服务器上运行它。当RSS的值超过Swap的值(两者都在2150M左右)时再次崩溃。换句话说,当内存超出限制时它崩溃了。然后我在我自己的 4G RAM 和双核处理器的 PC 上运行它。令我惊讶的是,到目前为止它一直表现良好。 PC上的内存占用保持在1.5G左右,离极限还有点距离。它一直运行得如此稳定,以至于PC上似乎有一种机制可以防止内存达到极限。相比之下,它似乎在 Sun 服务器上失控了。

编辑:自从我升级到最新的 64 位 Java 以来,它到目前为止还没有崩溃。

最佳答案

您是否尝试过将“M”附加到内存参数? (即 -Xms2048M)此外,我会尝试将 ms 设置为较小的值(即 1024M),以防 VM 无法为堆保留足够的空间。

关于java - 崩溃发生在本地代码中的 Java 虚拟机之外,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12037226/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com