该事故发生在Java虚拟机之外的本地代码(The crash happened outside th

2019-09-21 09:11发布

我做的网页抓取与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的价值超过了交换的值(这两者都是围绕2150M)点坠毁。 换句话说,它坠毁时内存超出了极限。 然后我跑我自己的电脑有4G内存和双核处理器。 令我惊讶的是,它已经做得很好至今。 PC上的内存使用率保持周围1.5G和稍远的极限。 它已经使运行平稳,它似乎存在阻止内存达到其限制在PC上的机制。 相反,它似乎失去控制的Sun服务器上。

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

Answer 1:

您是否尝试过附加一个“M”到内存参数? (即-Xms2048M)另外,我想尝试设置毫秒的情况下,较小的值(即1024M)的虚拟机不能为堆保留足够的空间。



文章来源: The crash happened outside the Java Virtual Machine in native code