Загрузка файла большого размера (8 ГБ) с помощью Weka - PullRequest
0 голосов
/ 31 марта 2012

Я пытаюсь загрузить файл 8 Гб в weka для использования алгоритма Apriori.Конфигурация сервера следующая: - 8-процессорный сервер с 4 ядрами в каждом физическом адресном пространстве = 40 бит и виртуальное адресное пространство = 48 бит.Это 64-битный процессор.

Физическая память = 26 ГБ и SWAP = 27 ГБ

JVM = 64 бита.Мы выделили 32 ГБ для JVM Heap, используя опцию XmX.Мы обеспокоены тем, что загрузка такого огромного файла занимает очень много времени (около 8 часов), а java использует 107% ЦП и 91% памяти, и он не показывает исключение «Недостаточно памяти», а weka показывает чтение из файла.

Пожалуйста, помогите мне, как мне обработать огромный файл и что именно здесь происходит?

Реагардс, Аникет

1 Ответ

0 голосов
/ 31 марта 2012

Я не могу говорить с Weka, я не знаю ваш набор данных или количество элементов в нем. Количество элементов имеет значение, как в 64-битной виртуальной машине Java, указатели огромны, и они складываются.

Но НЕ создавайте JVM больше физической ОЗУ. Своп просто не вариант для Java. Обмен JVM является мертвым JVM. Своп предназначен для редко используемых процессов простоя.

Также обратите внимание, что значение Xmx и размер физической кучи не совпадают, физический размер всегда будет больше, чем размер Xmx.

Вы должны предварительно выделить кучу JVM (Xms == Xmx) и опробовать различные значения до тех пор, пока МОСТ вашей физической памяти не будет израсходован. Это ограничит полную сборку мусора и фрагментацию памяти. Это также помогает (немного) сделать это в новой системе, если вы выделяете такую ​​большую часть общего пространства памяти.

Но что бы вы ни делали, не позволяйте Java менять местами. Обмен и сборщик мусора не смешиваются.

...