我的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。
我如何/在哪里更改此设置?
答案 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 ='...'进行设置。