我的团队正在使用JFrog Artifactory 2.6.7.1 Pro。 我们有计划升级到3.x,但由于非技术原因,它们正在放慢速度。
同时我们的2.6.x安装使用了超过190GB的磁盘。 大部分是在repo / data / filestore中。
我已经运行了以下维护选项并释放了一些磁盘:
我专门回顾了可能具有快照的“快照保留”设置。 对于这些回购,它被设定为合理的价值(小于10)。
我应该查看哪些设置以释放一些磁盘空间?
您提到的一些操作(切换caching,修剪未使用的数据等)是一次性操作,可能会有一些暂时的效果,但我不确定它们在正常操作的基础上是多么有用。 毕竟,caching在那里是有原因的。
其他的,如GC,由Artifactory默认运行(例如,GC每4小时运行一次)。
所有存储pipe理细节都列在一个Artifactory用户指南页面中 。
实际上,有5个configuration选项可以帮助您定期控制存储大小:
首先让我们find那些一年前创build的旧文物(假设今天是2015年5月18日)。 这个很容易用AQL: items.find({"type":"file", "created":{"$lt":"2014-05-18T"}})
请注意,我们可以如何使用比较运算符(例如“$ lt”)和date,并且我们正在利用AQL中内置的默认值,使用“$和”来复合多个条件。
如果在过去6个月内没有下载,请删除一些内容:因此,让我们在查询中添加另一个标准,这次是使用“stat”域中的“已下载”字段:
items.find({"type":"file", "created":{"$lt":"2014-05-18T"}, "stat.downloaded":{"$lt":"2014-11-18T"}})
如果你想确保没有重要的东西被删除,那么他将跳过“释放”存储库。 items.find({"type":"file", "created":{"$lt":"2014-05-18T"}, "stat.downloaded":{"$lt":"2014-11-18T"}, "repo":{"$nmatch":"*release*"}})
在这里,我们添加了一个标准,即存储库名称不包含模式“ release ”。 请注意,如果您的名称中有“发行版”的任何存储库 – 但它不是发行版存储库…它也将被跳过,您可能需要重新考虑您的命名约定。
大于1000字节的“大”文物。
因此,这里是最终的AQL查询,它查找系统中所有满足所有这些条件的工件: items.find({"type":"file", "created":{"$lt":"2014-05-18T"}, "stat.downloaded":{"$lt":"2014-11-18T"}, "repo":{"$nmatch":"*release*"}, "size":{"$gt":"1000"}})