Luk*_*ett 10 java windows jvm teamcity-7.1
我刚刚发现TeamCity在Windows上运行在32位JVM上,出于某种原因.
我在看到一个大的(不是那么大的)Git仓库并且已经处于JVM的最大堆大小时,看到了内存错误.我对Java或JVM或TomCat一无所知.
如何在现代的64位JVM上运行TeamCity?我觉得它会很痛苦,否则就会失败.
我们是一个很小的团队,如果某些东西没有苹果级别的'它只是有效',那么我们跳过它.
我们可以忍受这个不在CI服务器上的项目,但是知道所涉及的内容并权衡投资会很好.
任何建议表示赞赏
编辑
好吧,马库斯指出了这个片段(我已经读过),但我看不到有任何信息可以解释该怎么做.
使用64位Java运行TeamCity Server TeamCity可以在32位和64位JVM下运行.建议使用32位JVM,除非您需要为TeamCity进程提供超过1.3Gb的内存.
如果您选择使用x64 JVM,请注意当从32位JVM切换到64位JVM时,内存使用率几乎翻倍,因此请确保至少指定两倍于32位JVM的内存,请参阅为TeamCity设置内存设置服务器.
如果将TeamCity作为服务运行并切换到x64位,则还需要使用x64 Tomcat可执行文件,请参阅更多信息.
我错过了什么?
编辑2
啊,好吧,埋在上面这段链接的一些段落是这样的:
"如果您作为Windows服务运行并希望将JRE升级到64位版本,则需要使用适当的JRE替换\ jre"
所以我想我需要将一些文件复制到/ jre文件夹中?
我的工作方式(TeamCity 8,Windows server 2008 r2):
在目标计算机上安装64位JRE,现在有两种方法可以执行此操作
A - >如果您使用Teamcity捆绑的JRE,请将JRE文件夹([TC Server文件夹]\JRE)替换为新安装的JRE x64中的JRE文件夹 - 您必须关闭TC服务器服务(以及所有Java) .exe*32也可能使用此JRE的服务)
乙- >更改TeamCity的内部属性,使其指向新安装JRE的x64(见TC版本8文档,TC版9可以在这里找到):
java.home=C\:\\<JRE x64 install folder>\\jre
java.ext.dirs=C\:\\<JRE x64 install folder>\\jre\\lib\\ext\;C\:\\Windows\\Sun\\Java\\lib\\ext
java.library.path=C\:\\<JRE x64 install folder>\\jre\\bin\;C\:\\Windows\\Sun\\Java\\bin\;C\:\\Windows\\system32\;C\:\\Windows\;C\:\\local\\Oracle\\clients\\112_64\\bin\;C\:\\local\\Oracle…
Run Code Online (Sandbox Code Playgroud)B点的替代方案是更改环境变量JAVA_HOME,它更简单,但它需要在此之后重新启动Windows服务器
如果您现在运行TC Server服务,它应该作为64位Java进程运行(通过任务管理器中的PID chceck):

如果服务器没有启动抛出错误,请不要惊慌:
Error: SQL error when doing: Connecting to MSSQL: I/O Error: SSO Failed: Native SSPI library not loaded. Check the java.library.path system property
Run Code Online (Sandbox Code Playgroud)下载JTDS - 1.3.1(http://sourceforge.net/projects/jtds/files/jtds/1.3.1/)并安装它
从[JTDS-1.3.1安装文件夹]/x64/SSO文件夹中获取ntlmauth.dll文件并替换[TC Server文件夹]\bin中的文件
TC服务器现在应该可以正常运行64位Java进程
您现在可以在服务器上增加内存分配(因为这是升级的全部内容),如下所述:https://confluence.jetbrains.com/display/TCD8/Installing+and+Configuring+the+TeamCity+Server #InstallingandConfiguringtheTeamCityServer-SettingUpMemorysettingsforTeamCityServer
更新后的问题中的片段在原始文件中有一个链接,指向TeamCity 在线文档中有关 TeamCity 服务器 Java 更新的说明。
基本上,说明根据所使用的 TeamCity 发行版和启动服务器的方式而有所不同。
如果您的目的是增加 TeamCity 服务器的内存,请务必阅读同一文档页面上的相应部分。
还有一点需要注意:最近的 TeamCity 版本在单独的进程中执行 Git fetch,并且在 fetch 过程中与 Git 相关的内存问题可能需要微调相应的选项。