元数据迁移的常见问题
在迁移期间UI发生了什么?
当迁移发生时,JFrog平台UI显示一个通知,表明元数据当前正在迁移。
如果迁移中途停止会发生什么?
下次启动Artifactory时,迁移将从同一点继续进行。
迁移是在升级过程中进行还是在升级之后进行?
迁移发生在升级之后,并且将在升级后的第一次系统初始化(第一次启动Artifactory v7.x)时触发。
在迁移期间是否有停机时间?
JFrog使用基准测试来测试迁移过程27k个软件包和120万个版本的人工制作:
- Artifactory使用默认迁移配置(5个线程迁移到MDS)运行。
- Artifactory和PostgreSQL数据库在不同的机器上运行,使用以下规格-具有8个CPU和30 Gb RAM的GCP VM。
迁移不会造成停机,但是,UI和GraphQL API中的搜索结果将受到限制。
迁移需要多长时间,转化率是多少?
根据上面的基准,迁移速率为每小时60k-67k版本。使用这些规范的总迁移花费了在18-22小时之间。
数据库的细节
数据库连接
Metadata服务使用数据库连接池,默认包含100个连接。使用默认的MDS迁移设置(5个线程迁移元数据)运行Artifactory时,没有检测到到数据库的活动连接(大约10个活动连接)显著增加。在最坏的情况下,连接数不会超过100个。
CPU
- PostgreSQL的CPU最大值为60%。
- MDS的CPU最大值为23%
内存
- PostgreSQL的内存消耗大约是5%
- MDS内存消耗约为10%
存储
数据库大小从95GB增加到155GB(增加了约60%)。
管理元数据迁移进程
客户可以通过限制Artifactory中的线程数来控制元数据迁移(线程<=1意味着迁移关闭):
共享。extraJavaOpts -Dartifactory.metadata.event.operator.threads = 5
客户可以通过查询数据库,检查迁移状态,如下所示。
SELECT encode(migration_info_blob::bytea, 'escape') FROM migration_status where identifier = 'metadata-service-migration';