簡體   English   中英

Java應用程序崩潰

[英]Java Application Crash

我一直在研究一個大型的Java應用程序。 它非常平行,並使用幾個fixedThreadPools(每個都有8個線程)。 我在一台有2個內核的計算機上運行它,每個內核有4個處理器。 我的程序正在分析大量數據,並且在每組之后保存(序列化)分析,盡管它在數據集之間工作,因此每次運行新數據時都會重新加載(然后保存)。 我的問題是:在運行4-5個數據集(大約需要2天,我對編碼效率非常滿意)之后,它會在第5組完全相同的時間后崩潰(無論哪個數據集都是如此)我用)。 該程序是重復的,因此此時代碼中沒有任何新內容。 它是可重復的,我不知道該怎么做。 我可以發布完整的錯誤日志,如果這將有所幫助...我明白這個問題是模糊的,沒有更多的詳細信息,但如果有任何建議的建議,將不勝感激。

我一直在測試不同的設置,看看是否有什么幫助,現在我正在使用以下參數運行。

-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/
#

只是一個很難猜測......

可能無法創建更多文件

如果你在linux中運行這個嘗試運行

ulimit -c unlimited

在運行java程序之前......這應該有兩個方面的幫助

  1. 它應該增加文件創建限制
  2. 如果發生任何錯誤,它將創建Core轉儲。

查看程序運行時使用的文件IO數量。

我會用像Visual VM這樣的東西來測試它。 它會在您的應用程序運行時實時顯示內存,線程,CPU,創建的對象等內容。

我的好版本僅適用於Oracle / Sun JVM。 JDK附帶了一個,但我不認為它顯示的安裝所有插件的版本1.6.3都要詳細。

只需在eclipse.ini文件中添加-Dorg.eclipse.swt.browser.DefaultType = mozilla即可。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM