我正在运行一个从svn
到git
的转换项目。由于应用程序是单线程的,因此我将项目移至Faster PC。
因此,没有任何选项栏httpSpooling = true
;它在VM – 4 CPU's
,20 Gb of Ram
上运行正常。
两个单独实例的RAM使用情况为8GB
,最大值为9.8Gb
。
作业暂停,压缩并SCP到了新机器上-Deb9(与VM相同)i7(8 CPUs
(有效))16GB内存的Bare Metal版本。
但是,当仅启动一个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
,但这似乎是两种方式的转换,这不是我要尝试做的事情。根据成功运行的系统上的应用程序使用情况,应该有足够的RAM,因此除非SubGit忽略某些值,否则我无法确定。
最佳答案
实际上,根据您运行的操作,[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 shutdown”或其他方式)在虚拟机上暂停作业,当时正在运行哪些操作(初始翻译或常规提取)以及如何在虚拟机上重新启动作业?新机器。