云客户?
免费开始>
在MyJFrog >中升级
云有什么新>







概述

Artifactory提供了一些工具,允许您维护系统以获得最佳性能。

若要配置全局系统维护,政府模块下维护

Artifactory SaaS用户

JFrog管理Artifactory Cloud所有实例的定期维护操作。如果您是一个Artifactory Cloud用户,JFrog Artifactory Cloud管理员将为您监视和优化管理此页上描述的所有功能。

页面内容



垃圾收集

垃圾收集

Artifactory使用基于校验和的存储来确保每个二进制文件只存储一次。

部署新文件时,Artifactory检查是否已经存在具有相同校验和的二进制文件,如果存在,则将存储库路径链接到该二进制文件。在删除存储库路径时,Artifactory不会删除二进制文件,因为它可能被其他路径使用。然而,一旦所有指向二进制文件的路径都被删除,该文件实际上就不再被使用了。为了确保您的系统不会被未使用的二进制文件阻塞,Artifactory定期运行“垃圾收集”来识别未使用(“已删除”)的二进制文件,并从数据存储中处理它们。默认情况下,它被设置为每4小时运行一次,由控件控制cron表达式。

例如,要每12小时运行一次垃圾收集,你应该指定以下表达式:

0 0 /12 * * ?
Cron表达式
指定垃圾收集应自动运行的频率
下一次运行时间
指示根据指定的参数下一次自动运行垃圾收集Cron表达式
现在运行
手动立即调用垃圾收集

垃圾收集频率

垃圾收集是一项资源密集型操作。过于频繁地运行可能会降低系统性能。

从Artifactory 6.12.0开始,引入了一个更快的垃圾收集策略,并在启用时自动运行垃圾桶设置。新的清理策略获取和取消部署位于垃圾桶存储库下的比配置的垃圾保留期更老的垃圾桶构件。
如果没有其他工件引用相关的校验和,则删除链接的二进制文件。清理还在多个线程上运行(可通过设置artifactory.gc.numberOfWorkersThreads = 3).

请注意

未引用的二进制文件(包括已存在的未引用二进制文件或已从垃圾桶中手动删除的工件)将在每年运行一次的下一次Full GC运行期间被删除20次GC迭代(可配置的,artifactory.gc.skipFullGcBetweenMinorIterations = 20).

垃圾收集改进

对垃圾收集机制进行了以下改进:

  • 从Artifactory 6.12.0开始,引入了更快的垃圾收集策略,并在启用垃圾桶设置。新的清理策略获取和取消部署位于垃圾桶存储库下的比配置的垃圾保留期更老的垃圾桶构件。
    如果没有其他工件引用相关的校验和,则删除链接的二进制文件。清理还在多个线程上运行(可通过设置artifactory.gc.numberOfWorkersThreads =3)。

    未引用的二进制文件(包括已存在的未引用二进制文件或已从垃圾桶中手动删除的工件)将在之前的Full GC策略中删除,该策略每20次GC迭代运行一次(可配置的,artifactory.gc.skipFullGcBetweenMinorIterations = 20).

  • 从Artifactory 7.31.10开始,您可以通过添加对象来跳过设置对象顺序的需要来提高垃圾收集性能artifactory.gc.skipOrderByFullGc = true参数。artifactory.system.properties文件。

存储配额限制

Artifactory允许您对整个系统磁盘存储空间的使用进行限制,以确保您的服务器文件系统容量永远不会用完。这有助于保持系统的可靠性和可用性。

一旦用于存储的磁盘空间达到指定的限制,任何部署二进制文件的尝试都会被Artifactory拒绝,其状态代码为请求实体太大,界面下方提示“数据存储磁盘空间过高”错误维护屏幕上。

  • 在使用文件系统存储时,选中的分区是包含$ JFROG_HOME / artifactory / var /数据/ artifactory / filestore目录中。
  • 使用数据库blob存储时,选中的分区是包含JFROG_HOME / artifactory / var /美元数据/ artifactory /缓存目录中。
  • 当使用S3模板时,cache-fs将是检查分区,默认是$ JFROG_HOME / artifactory / var / artifactory /数据/缓存目录中。

为了帮助您避免达到磁盘空间配额,Artifactory还允许您指定一个警告级别。一旦使用了指定百分比的磁盘空间,Artifactory将在美元JFROG_HOME / artifactory / var / log / artifactory-service.log文件,并在底部显示“数据存储磁盘空间过高”警告维护屏幕上。

启用配额控制
设置后,Artifactory将监控磁盘空间使用情况,并根据中指定的配额发出警告和错误存储空间限制存储空间警告
存储空间限制
在Artifactory拒绝部署并发出错误之前,可用磁盘空间用于存储的百分比
存储空间警告
在Artifactory发出警告之前可能用于存储的可用磁盘空间的百分比

清理未使用的缓存工件

清理未使用的缓存工件

配置远程存储库时,可以使用保存未使用的工件通过设置,您可以指定存储库中缓存的未使用工件在成为清理的候选对象之前应该保留多长时间。此设置不会立即清理未使用的缓存工件,而只是在指定的小时数之后将其标记为清理。清理未使用的缓存工件设置指定清除操作应该在何时运行,并且只有在这时才会从系统中实际删除标记为清除的未使用的缓存工件。

清除频率由cron表达式例如,要每12小时运行一次清理,您应该指定以下表达式:

0 0 /12 * * ?

清理虚拟存储库

清理虚拟存储库

虚拟存储库使用内部缓存来存储聚合的元数据,例如POM文件。“清除虚拟存储库”操作删除超过168小时(一周)的缓存POM文件

清除频率由cron表达式例如,要每12小时运行一次清理,您应该指定以下表达式:

0 0 /12 * * ?



存储

压缩内部数据库

仅Derby数据库

该特性仅在使用内部Derby数据库时相关

当从表中删除大量数据或更新索引时,Derby数据库通常可能包含未使用的已分配空间。默认情况下,Derby不会将未使用的空间返回给操作系统。例如,一旦将一个页分配给表或索引,它就不会自动返回给操作系统,直到表或索引被销毁。

当您调用此操作时,Artifactory将回收表及其索引中未使用和已分配的空间,从而压缩内部数据库。

我们建议在Artifactory活动较低时运行此操作,因为当存储繁忙时,压缩可能无法完成(在这种情况下,存储不会受到影响)。

修剪未引用的数据

由于在存储文件夹上使用错误的文件系统权限运行或存储空间不足,可能会出现未引用的二进制文件。

当您调用此操作时,Artifactory将删除文件存储或缓存文件夹中未引用的二进制文件和空文件夹。

确保完全关机

为了避免此类错误,我们建议始终允许Artifactory完全关闭

注意:此操作并不涉及删除存储库树中的空目录——当删除其中的工件后发现文件夹为空时,这些目录将自动异步删除。


版权所有©2023 JFrog Ltd。