10

出于某种原因,我刚刚发现 TeamCity 在 Windows 上的 32 位 JVM 上运行。

我看到在签出大型(不是那么大)Git 存储库时记录了内存错误,并且已经处于 JVM 的最大堆大小。我对 Java、JVM 或 TomCat 一无所知。

如何在现代 64 位 JVM 上运行 TeamCity?我觉得这将是一种痛苦,否则它将成为默认值。

我们是一个小团队,如果某些东西没有 Apple 级别的“它就可以工作”,那么我们就跳过它。

我们可以忍受这个项目不在 CI 服务器上,但很高兴知道所涉及的内容并权衡投资。

任何建议表示赞赏。

编辑

好的,所以 Markus 指出了这个片段(我已经阅读过),但我看不到任何解释该做什么的信息。

使用 64 位 Java 运行 TeamCity 服务器 TeamCity 可以在 32 位和 64 位 JVM 下运行。除非您需要为 TeamCity 进程分配超过 1.3Gb 的内存,否则建议使用 32 位 JVM。

如果您选择使用 x64 JVM,请注意从 32 位 JVM 切换到 64 位 JVM 时内存使用量几乎翻了一番,因此请确保您指定的内存量至少是 32 位 JVM 的两倍,请参阅为 TeamCity 设置内存设置服务器。

如果您将 TeamCity 作为服务运行并切换到 x64 位,您还需要使用 x64 Tomcat 可执行文件,请参阅更多信息。

我错过了什么?

编辑 2

啊,好吧,隐藏在该链接上方的某些段落中是这样的:

“如果您作为 Windows 服务运行并希望将 JRE 升级到 64 位版本,则需要将 \jre 替换为适当的 JRE”

所以我想我需要将一些文件复制到 /jre 文件夹中?

4

3 回答 3

7

我让它工作的方式(TeamCity 8,Windows server 2008 r2):

  • 在目标机器上安装 64 位 JRE,现在有两种方法可以做到这一点

  • A -> 如果您使用的是 Teamcity 捆绑的 JRE,请将 JRE 文件夹([TC Server 文件夹]\JRE)替换为新安装的 JRE x64 中的 JRE 文件夹 - 您必须关闭 TC 服务器服务(以及所有 java .exe*32 服务也可能使用此 JRE)

  • B -> 更改 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… 
    
  • B点的替代方法是更改​​环境变量JAVA_HOME,它更简单,但之后需要重新启动Windows服务器

  • 如果您现在运行 TC Server 服务,它应该作为 64 位 Java 进程运行(通过任务管理器中的 PID 检查):

资源监视器 任务管理器

于 2014-12-01T09:02:25.620 回答
2

更新问题的片段在原始链接中有一个链接,指向TeamCity 在线文档中TeamCity 服务器的 Java 更新说明。

基本上,说明因使用的 TeamCity 发行版和启动服务器的方式而异。

如果您的意图是增加 TeamCity 服务器的内存,请确保通读同一文档页面上的相应部分。

还有一点需要注意:最近的 TeamCity 版本在单独的进程中执行 Git 提取,提取期间与 Git 相关的内存问题可能需要对相应选项进行微调。

于 2013-11-15T17:34:06.760 回答
1

“所以我想我需要将一些文件复制到 /jre 文件夹中?”

否。您安装64 位 JRE,并更新相关设置以指向 64 位安装的 JRE。

不要将一个 JRE 安装中的内容复制到另一个中。你会弄坏东西的!

于 2013-11-08T18:31:59.343 回答