TeamCity如何设置JVM参数

时间:2015-04-24 12:48:56

标签: jvm teamcity jvm-arguments

我的teamcity构建服务器具有以下JVM参数:

-Xmx512m -XX:MaxPermSize = 270m

有时它会显示一些内存问题消息,例如" PS Old Gen池的TeamCity服务器内存使用量超过341 MB最大可用内容的91%。 437 MB使用506 MB总堆可用。有关可能的解决方案,请参阅TeamCity文档。"

我在这里阅读https://confluence.jetbrains.com/display/TCD8/Installing+and+Configuring+the+TeamCity+Server#InstallingandConfiguringtheTeamCityServer-SettingUpMemorysettingsforTeamCityServer,建议的最低设置为:-Xmx750m -XX:MaxPermSize = 270m。

我如何/在哪里更改此设置?

3 个答案:

答案 0 :(得分:4)

在TC9 +中,可以在TC Server GUI中设置此变量: 管理 - >诊断 - >内部属性 - >编辑内部属性

对于64位JVM,推荐设置为:

Set<Double> set = new HashSet<Double>;

只需将此行添加到内部属性编辑框

即可

答案 1 :(得分:2)

我建议使用变量TEAMCITY_SERVER_MEM_OPTS在启动脚本(start.sh)中为基于服务器的启动添加JVM内存选项。请不要在运行teamcity的用户标识的配置文件中设置它。

link应该对您有所帮助。

如果您需要服务器和代理的不同内存设置(通常就是这种情况),请选择命名变量,以便在识别服务器和代理启动的JVM选项方面有所不同。

作为团队城市设置的经验法则,我通常会让我的teamcity服务器的内存比我的平均使用量多20%,以说明在高峰使用期间任何增加的负载。

答案 2 :(得分:1)

根据记录,伊戈尔的答案是错误的。不知道为什么要投票。我的代表人数很少,因此无法发表评论或投反对票。但是,内部属性是在JVM启动后读取的,因此如果将堆设置放在其中,则它们不会生效。我正在研究如何为TeamCity容器执行此操作。最好的选择似乎是使用环境变量(TEAMCITY_SERVER_MEM_OPTS)。对于容器,可以在创建容器时通过传递-e TEAMCITY_SERVER_MEM_OPTS ='...'进行设置。