ARTIFACTORY:如何复制/移动大型存储库
对于低于20,000件的工件,称为“api /复制“或者”api /移动文件夹上的端点应该能够在可接受的时间长度内处理请求。然而,对于较大的工件集,这些单个文件夹级别的api不能很好地扩展。对于执行相同操作的UI按钮也是如此。
这是因为Artifactory中的直接Copy或Move api是单线程的。这样做是为了确保大的复制或移动不会使应用程序崩溃,但它限制了操作的吞吐量。需要外部工具来完成某些处理。
当您需要及时地复制或移动超过20,000个工件时,应该使用另一种多线程方法。
JFrog CLI的复制/移动操作解释
JFrog CLI具有内置命令,可以使用多线程算法运行这些操作。CLI执行以下步骤来执行操作:
- 通过AQL搜索存储库和文件夹路径,以构建要复制或移动的工件树。
- 运行单独的复制/移动操作,对找到的每个工件使用一个线程
这导致在较短的时间内发生许多单独的文件级操作。这节省了处理时间,因为JFrog CLI正在处理“作业”,而Artifactory只需要处理SQL更新。
注意:增加线程数将导致更多的数据库使用,因为将发出更多的“INSERT”SQL语句。为了在保持稳定性的同时提高性能,监控数据库并根据需要增加其资源。2022世界杯阿根廷预选赛赛程
示例命令:
复制“com”文件夹有25个线程Jf rt cp——threads=25 lib -snapshot-local/com lib -release-local/com
移动“com”文件夹有25个线程Jf rt mv——threads=25 lib -snapshot-local/com lib -release-local/com
