Azure专用管道代理.git文件夹大小

时间:2020-11-11 11:59:16

标签: azure-devops azure-pipelines

由于与该问题无关的原因,我们最近从托管代理转为私人代理。我们现在遇到的问题是私有代理程序磁盘空间不足。我已经检查了为什么是这种情况,事实证明,对于代理创建的工作空间之一,.git文件夹在白天增长到超过20Gb,而存储库只有几Gb。什么能解释这种过度增长?

一些额外的信息:

  • 我们使用相同的管道从不同的分支进行构建(因此它重复使用了相同的工作空间)
  • 我们不会在两次运行之间清理工作区,因为这将需要重新获取每个构建版本的整个存储库,这会降低构建速度。 (我知道添加clean选项可以解决我们的问题,但也会降低所有我们不希望的构建速度)
  • 我们曾经在流水线中使用fetchdepth: 1,但是最近我们删除了它,因为私有代理不再需要它了,因为源被缓存在运行之间

修改: 为了明确起见,我正在寻找一种避免代理上的磁盘空间用完而又不丢失缓存源文件的能力的方法。

1 个答案:

答案 0 :(得分:0)

当我使用不同分支运行同一管道时,Events: Type Reason Age From Message ---- ------ ---- ---- ------- Warning ProvisioningFailed 52m (x6 over 76m) rook-ceph.cephfs.csi.ceph.com_csi-cephfsplugin-provisioner-786c55674-vh85x_a61583f5-1ee3-45b7-a530-4af167a55409 (combined from similar events): failed to provision volume with StorageClass "rook-cephfs": rpc error: code = Internal desc = an error (exit status 2) occurred while running ceph args: [fs subvolume create myfs csi-vol-871dab3a-24bb-11eb-83b8-a2a2d03a0d73 10737418240 --group_name csi --mode 777 -m 10.43.238.86:6789,10.43.3.26:6789,10.43.190.156:6789 -c /etc/ceph/ceph.conf -n client.csi-cephfs-provisioner --keyfile=***stripped*** --pool_layout myfs-data0] Normal Provisioning 2m10s (x25 over 81m) rook-ceph.cephfs.csi.ceph.com_csi-cephfsplugin-provisioner-786c55674-vh85x_a61583f5-1ee3-45b7-a530-4af167a55409 External provisioner is provisioning volume for claim "default/cephfs-pvc-csi" Normal ExternalProvisioning 64s (x322 over 81m) persistentvolume-controller waiting for a volume to be created, either by external provisioner "rook-ceph.cephfs.csi.ceph.com" or manually created by system administrator 文件夹的大小确实增加了。

然后我发现此问题的根本原因可能是.git中的pack files

enter image description here

它将打包源文件,如果您的源文件足够大,则打包的文件也将占用大量空间。

您可以尝试使用BFG toolGit command删除文件。

有关更多详细信息,您可以参考以下票证:Remove large .pack file created by git