1

我正在运行一个从svn到的转换项目git。由于应用程序是单线程的,我将项目移动到更快的 PC。

所以没有任何选项栏httpSpooling = true;它在 VM 上运行正常 - 4 CPU's, 20 Gb of Ram.

具有两个独立实例的 RAM 使用率8GB最高可达9.8Gb.

8 CPUs乔布斯暂停、压缩和 SCP'd 到新机器 - Deb9(与 VM 相同)i7( (有效))16GB ram的裸机构建。

但是,当仅启动一个 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.

我也尝试过其他设置,包括更改–clientfor –server,但这似乎是更多的双向转换,这不是我想要做的事情。

根据成功运行的系统上的应用程序使用情况,应该有足够的 RAM,所以除非 SubGit 忽略某些值,否则我无法判断。

4

1 回答 1

1

根据您运行的操作,[daemon] 部分中的“javaOptions”确实可能会被忽略:这些 java 选项会影响 SubGit 守护进程,但不会影响“subgit install”或“subgit fetch”操作。既然您提到存储库已移至另一台机器,我相信您已经调用了这两个命令中的任何一个来重新启动镜像,这就是忽略“daemon.javaOptions”的原因。要调整 SubGit 的 java 选项,请在 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"

至于内存消耗本身,这取决于正在运行哪些操作。目前尚不清楚您是如何暂停虚拟机上的作业(通过“subgit 关闭”或以其他方式?),当时正在运行哪些操作(初始翻译或常规获取)以及您如何重新启动虚拟机上的作业新机器。

于 2018-11-01T12:48:36.773 回答