GoCD配置库

GoCD的配置是在本地git存储库中进行版本控制的 - config.git 与GoCD服务器位于同一台机器上。 回放可在<GoCD服务器安装目录>/db/config.git中找到。 对配置的任何更改(通过文件系统,API或GoCD配置UI)都将作为新提交保存在此代码仓库中。 这允许审计对配置进行的所有更改。

注意:此代码仓库不得在外部进行更改,因为这会导致GoCD中的错误。

垃圾收集

随着时间的推移,这个资源库的规模会增大,并且会大大减缓配置保存操作。 解决这个问题的一种方法是在repo上手动运行git gcread more)。 但是,这样做 在错误的时间(比如,当服务器运行并尝试完成配置保存操作时)可能会导致问题。

因此,GoCD为此git存储库内置了垃圾回收器,并且可以将其配置为定期运行。但是,由于此活动可能需要很长时间才能在GC第一次发生时运行,因此默认情况下该功能处于关闭状态。 GoCD服务器定期检查松散物体数量是否超过预设阈值并显示警告消息。这是用户在其服务器上启用定期GC的提示。

以下是您需要遵循(并按此顺序)为配置存储库启用定期GC的步骤:

  1. 停止GoCD服务器

  2. 备份整个config.git目录(记住,其中有一个隐藏的.git目录)

  3. 运行git gc作为GoCD服务器运行的用户,在该目录中手动运行一次。在Unix/Linux上,这通常是“去”用户。不要以root用户身份运行它。如果你这样做,确保你运行chown -R go:go /path/to/config.git来确保该目录的所有权是正确的。

  4. 完成后,您现在可以设置下面提到的这些系统属性,以更改定期垃圾回收的行为。至少,您应该将go.config.repo.gc.periodic系统属性设置为Y,以便启用它。你可以参考文档来了解如何为你的WindowsLinux设置这些服务器参数。

  5. 启动服务器并验证您设置的属性是否反映在系统中。本页末尾的部分有关于它的详细信息。

影响定期垃圾回收的系统属性

属性: go.config.repo.gc.periodic

  • 默认值: N

这可以定期垃圾回收config.git代码库。 要启用此功能 -将值设置为“Y”

属性: go.config.repo.gc.aggressive

  • 默认值: Y

此选项将导致GC更积极地优化存储库,但需要花费更多时间。 通过将此值设置为“N”,可以使其不具有侵略性。 如果系统属性go.config.repo.gc.cron设置为频繁运行git gc,则建议将此选项设置为N

属性: go.config.repo.gc.cron

  • 默认值: 0 0 7 ? * SUN

Cron表达式指定垃圾回收器执行时间,默认情况下为 星期日早上7.00。 查看文档获取有关cron语法的帮助。 对于Linux用户,在重写go.config.repo.gc.cron时,您需要使用反斜杠来转义特殊的脚本字符,例如*

例如:

GO_SERVER_SYSTEM_PROPERTIES="$GO_SERVER_SYSTEM_PROPERTIES -Dgo.config.repo.gc.cron='0 0 7 1/1 \* \?'"

上述cron将设置每天早上7点在每个月运行git gc。

属性: go.config.repo.gc.warning.looseobject.threshold

  • 默认值: 10000

如果松散对象 (loose object)计数超出此阈值,则会在弹出的服务器健康消息中显示一个警告。

属性: go.config.repo.gc.expire

  • 默认值 24 hours

此选项将指定git gc的到期时间,以便在指定的时间之后或在指定的时间创建或修改的每个未引用的松散对象都不会被修剪。 只有较旧的物体可能会被修剪。在几个小时内指定这个步骤。

属性: go.config.repo.gc.check.interval

  • 默认值: 28800000

检查松散对象计数的频率,以毫秒为单位指定,默认设置为8小时

验证是否设置了这些属性:

一旦你设置了你想要的值的属性,你应该确认这些值在服务器上准确反映,当它返回时。 作为管理员,如果您访问/go/api/support(意思是http//your-go-server/go/api/support),那么您应该能够在该页面中找到这些属性, 与您设置的值。 如果您没有看到它们,或者看到它们的值不正确,则需要查看是否正确设置了它们。

results matching ""

    No results matching ""