GoCD 配置仓库
GoCD 的配置在本地 git 仓库中进行了版本控制 -config.git托管在同一台机器上作为 GoCD 服务器。该仓库可在以下位置访问<GoCD server installation directory>/db/config.git
。任何对配置的更改,无论是通过文件系统、API 还是 GoCD 配置 UI,都会作为新提交保存在此仓库中。这使得可以对所有对配置所做的更改进行审计。
注意:此仓库不应从外部修改,否则将导致 GoCD 出现错误。
垃圾回收
随着时间推移,此仓库大小会增长,并可能显著减慢配置保存操作的速度。一种应对方法是在仓库上手动运行git gc
(阅读更多)。然而,在错误的时间执行此操作(例如,当服务器正在运行并尝试完成配置保存操作时)可能会导致问题。
因此,GoCD 内置了针对此 Git 仓库的垃圾回收功能,并可以配置为定期运行。但是,由于此活动在首次运行垃圾回收时可能需要很长时间,该功能默认关闭。GoCD 服务器会定期检查松散对象的数量是否超过预设阈值,并显示警告消息。这是提示用户在其服务器上启用定期垃圾回收的信号。以下是您需要按照以下顺序执行的步骤,以启用配置仓库的定期垃圾回收:
- 停止 GoCD 服务器。
- 备份整个
config.git
目录(记住,其中有一个隐藏的 .git 目录) - 在该目录下手动运行
git gc
,作为运行 GoCD 服务器的用户。在 Unix/Linux 系统上,通常是go
用户。不要以 root 用户运行。如果您这样做了,请确保运行chown -R go:go /path/to/config.git
以确保该目录的所有权正确。 - 完成后,您可以设置以下提到的系统属性以更改定期垃圾回收的行为。至少,应将
go.config.repo.gc.periodic
系统属性设置为Y
以启用该功能。 - 启动服务器并验证您设置的属性已反映在系统中。本页面末尾的部分详细介绍了相关内容。
影响定期垃圾回收的系统属性
系统属性 | 默认值 | 描述 |
---|---|---|
go.config.repo.gc.periodic |
false |
启用config.git 仓库定期垃圾回收的标志。 |
go.config.repo.gc.aggressive |
true |
这将使垃圾回收更加积极地运行。对于大型仓库,这可能需要大量时间。如果垃圾回收频率非常高,建议将其设置为false 。 |
go.config.repo.gc.cron |
0 0 7 ? * SUN (周日早上 7 点) |
The 描述垃圾回收发生时间的cron 表达式 |
go.config.repo.gc.warning.looseobject.threshold |
10000 |
如果松散对象数量超过此阈值,服务器健康消息弹出框中将显示警告。 |
go.config.repo.gc.expire |
24 (以小时为单位) |
超过此时间段(以小时为单位)的对象将被修剪。 |
go.config.repo.gc.check.interval |
28800000 (以毫秒为单位) |
检查松散对象数量的频率,以毫秒为单位指定,默认值为8 小时. |
要配置系统属性,请编辑文件wrapper-properties.conf
以添加上述描述的系统属性。有关wrapper-properties.conf
参考资料: