Подгит "Недостаточно памяти" и "Превышен предел загрузки GC" - PullRequest
0 голосов
/ 26 октября 2018

Я запускаю проект конвертации от svn до git.Поскольку приложение является однопоточным, я перемещаю проект на более быстрый ПК.

Так что без панели параметров httpSpooling = true;На ВМ он работает нормально - 4 CPU's, 20 Gb of Ram.

Использование ОЗУ с двумя отдельными экземплярами 8GB, максимальное значение 9.8Gb.

Задания приостановлены, заархивированы& SCP'd на новую машину - сборка Bare Metal для Deb9 (аналогично VM) i7 (8 CPUs (эффективная)) 16 ГБ. Оперативная память.

Однако при запуске только одного экземпляра SubGit;Я получаю либо Java out of memory, либо GC Overhead Limit Exceeded.Я попытался добавить следующие перестановки к repo.git/subgit/config в [daemon]

javaOptions = -noverify -client -Djava.awt.headless=true -Xmx8g -XX:+UseParallelGC -XX:-UseGCOverheadLimit – This gives GC Overhead Limit Exceeded Error
#javaOptions = -noverify -client -Djava.awt.headless=true -Xmx8g -XX:+UseParallelGC -XX:-UseGCOverheadLimit – (OPS Disabled) Gives an out of memory error.
javaOptions = -noverify -client -Djava.awt.headless=true –Xmx12g -XX:-UseGCOverheadLimit – this gives out of memory errors.

Я пробовал и другие настройки, включая изменение –client для –server, но, похоже, больше двухспособ преобразования, который я не пытаюсь сделать.

Должно быть достаточно оперативной памяти, основанной на использовании приложения в успешно работающей системе, поэтому, если SubGit не игнорирует некоторые значения, я не могу сказать,.

1 Ответ

0 голосов
/ 01 ноября 2018

«javaOptions» в разделе [daemon] действительно может игнорироваться в зависимости от выполняемой вами операции: эти параметры java влияют на демон SubGit, но не на операцию «subgit install» или «subgit fetch». Поскольку вы упомянули, что репозитории были перенесены на другой компьютер, я полагаю, что вы вызвали любую из этих двух команд для перезапуска зеркала, и поэтому этот daemon.javaOptions игнорируется. Чтобы настроить параметры java SubGit, отредактируйте его прямо в скрипте запуска SubGit (строка EXTRA_JVM_ARGUMENTS):

EXTRA_JVM_ARGUMENTS="-Dsun.io.useCanonCaches=false -Djava.awt.headless=true -Djna.nosys=true -Dsvnkit.http.methods=Digest,Basic,NTLM,Negotiate -Xmx512m"

Что касается самого потребления памяти, оно зависит от того, какие операции выполняются. Не совсем понятно, как вы приостанавливали задания на виртуальной машине (путем «выключения субгита» или другим способом?), Какие операции выполнялись в это время (первоначальный перевод или обычные выборки) и как вы перезапускали задания на новая машина.

...