Итак, я следил за процессом с помощью VisualVM и нажал «Perform GC», затем процесс остановился с ошибкой:
#
# A fatal error has been detected by the Java Runtime Environment:
#
# java.lang.OutOfMemoryError: requested 4088 bytes for char in /BUILD_AREA/jdk6_24/hotspot/src/share/vm/utilities/stack.inline.hpp. Out of swap space?
#
# Internal Error (allocation.inline.hpp:39), pid=1148, tid=1082808672
# Error: char in /BUILD_AREA/jdk6_24/hotspot/src/share/vm/utilities/stack.inline.hpp
#
# JRE version: 6.0_24-b07
# Java VM: Java HotSpot(TM) 64-Bit Server VM (19.1-b02 mixed mode linux-amd64 )
# An error report file with more information is saved as:
# /net/bsrs78.pit.twosigma.com/d-1/local/eaMemory2-yao-bsrs78.pit.twosigma.com-db8rsnyc9-head-20110622-130721-31729-0/hs_err_pid1148.log
#
# If you would like to submit a bug report, please visit:
# http://java.sun.com/webapps/bugreport/crash.jsp
#
Но незадолго до этого я проверил машину и ееПохоже, что осталось достаточно памяти (цифры указаны в МБ):
free -m
total used free shared buffers cached
Mem: 96869 60999 35869 0 363 4590
-/+ buffers/cache: 56045 40823
Swap: 10243 40 10203
Мне кажется маловероятным, что GC займет всю память.
Это проблемапотому что, если я просто позволю программе продолжить работу, в какой-то момент она максимально выделит выделенную кучу, а затем попытается выполнить основной сборщик мусора и умереть таким же образом.Незначительный GC, кажется, хорошо, хотя.
Так что здесь происходит?Почему он умирает с сообщением подкачки пространства?Пожалуйста, дайте мне знать, если я могу что-то сделать, чтобы предоставить больше информации или диагностировать эту проблему дальше.Я буду очень признателен за любую помощь!
Спасибо!
Edit1: я загрузил журнал ошибок на http://www.mediafire.com/?kw0meup9mw5de9c, и для чего он стоит, он использует PS Scavenge для незначительного GCи PS MarkSweep для основного GC.
Edit2: Кроме того, эта проблема возникала несколько раз, постоянно умирая в середине крупной сборки мусора - будь то вызвано мной из-за VisualVM или из-за нехватки кучи и запускасамой JVM.