我一直在研究一个大的Java应用程序。它非常平行,并且使用了几个fixedThreadPools(每个都有8个线程)。我在一台有2个内核的计算机上运行它,每个内核有4个处理器。我的程序正在分析大量数据,每次设置后都会保存(序列化)分析,尽管它可以跨数据集使用,并且每次运行一个新的(然后保存)时都会重新加载。
我的问题是:在运行4-5个数据集(大约需要2天,并且我对编码效率非常满意)之后,它会在第五组完全相同的时间量之后崩溃(无论哪个数据集我用)。该程序是重复性的,因此目前代码中没有新的内容。它是可重复的,我不知道该怎么做。我可以发布完整的错误日志,如果这可以帮助...我明白,这个问题是不明确的,没有更多的详细信息,但如果有任何去的建议,将不胜感激。
我一直在测试不同的设置以查看是否有帮助,现在我正在运行以下参数。
-Xmx6g -Xmx12g -XX:+ UnlockExperimentalVMOptions -XX:+ UseG1GC
谢谢,
乔
#
# A fatal error has been detected by the Java Runtime Environment:
#
# SIGSEGV (0xb) at pc=0x0000000000000000, pid=18454, tid=140120548144896
#
# JRE version: 7.0_03-b147
# Java VM: OpenJDK 64-Bit Server VM (22.0-b10 mixed mode linux-amd64 compressed oops)
# Derivative: IcedTea7 2.1.1pre
# Distribution: Ubuntu precise (development branch), package 7~u3-2.1.1~pre1-1ubuntu2
# Problematic frame:
# C 0x0000000000000000
#
# Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again
#
# If you would like to submit a bug report, please include
# instructions on how to reproduce the bug and visit:
# https://bugs.launchpad.net/ubuntu/+source/openjdk-7/
#