【问题标题】:TFS Database growth is increasing at a rapid speedTFS 数据库增长迅速
【发布时间】:2019-08-08 19:42:49
【问题描述】:

何时使用 TFS 2018,并且刚刚开始创建我们的构建和发布定义。我们注意到数据库的大小正在迅速增加,以至于虚拟机由于空间不足而关闭。我还能做些什么来减少这种增长。

我尝试了以下方法:

  • 每次构建后清理代理目录
  • 将所有构建和发布定义的保留时间设置为 1 - 2 天
  • 删除当前代理工作目录
  • 运行EXEC prc_CleanupDeletedFileContent 1
  • 运行EXEC prc_DeleteUnusedFiles 1, 0, 100000

即便如此,它也只释放了大约 6GB。

按所有者 ID 划分的 Blob 大小:

文件容器分发:

数据库每日增长:

【问题讨论】:

  • 每次构建后清理代理目录这对解决这个问题没有帮助。您的构建有多大,您是否只发布必要的工件?
  • @DanielMann 因此,有些构建运行单元测试,有些则创建仅包含特定分支中特定文件夹中的文件的工件。我试图尽可能减少开销。有什么方法可以删除旧的工件还是自动完成。

标签: sql-server tfs tfsbuild


【解决方案1】:

TFS VC 内容

当 TFS 版本控制分支、文件夹和文件时 被删除,他们只是逻辑删除 - 他们的内容仍然 历史上可用。 TFS VC 分支、文件夹或单个文件 可以使用 destroy 命令通过 tf.exe 物理删除。

所以最后要执行一系列命令:

tf destroy /i /startcleanup "$/<BranchName or FileName>" /collection:http://<TFS_URI>:8080/tfs/<CollectionName>

还有(仅适用于 XML):

tfsbuild destroy /collection:http://tfsserver:8080/tfs/ProjectCollection /dateRange:01/01/2017~31/12/2017 /buildDefinition:teamProject\Builddefintion

对于较新类型的构建检查:tfsbuild delete/destroy - founds no builds for build specification

参考资料:

【讨论】:

  • 这个命令只是为了版本控制吗?如果是这样,那么导致大多数问题的更多是构建文件。该命令是否也适用于构建?
  • @Ross,嗨,我添加了另一个命令:tfsbuild destroy。但也是一篇好文章,我认为是一篇好文章:“在迁移到 VSTS 之前清理您的团队项目集合”
猜你喜欢
  • 1970-01-01
  • 2016-12-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-05-30
  • 1970-01-01
  • 1970-01-01
  • 2015-11-10
相关资源
最近更新 更多