Milvus 2.3.3用milvus-backup 0.4恢复极慢,求性能优化方案
Milvus 2.3.3 + milvus-backup 0.4 恢复性能优化建议(针对1.6亿实体集合恢复慢问题)
使用milvus-backup 0.4对Milvus 2.3.3集群执行备份与恢复操作:包含1.6亿条实体的集合备份仅耗时30分钟,但恢复耗时超9小时。恢复命令为:
milvus-backup restore -n mycollection --restore_index恢复过程中Milvus集群资源使用率极低,仅备份工具Pod有明显负载,资源使用情况如下:
k top pods -n milvus --sort-by=cpu NAME CPU(cores) MEMORY(bytes) milvus-backup-mycluster 1002m 330Mi mycluster-datanode-5788666898-jb47f 777m 855Mi mycluster-rootcoord-687cf4cb9-wp6n8 76m 132Mi mycluster-querycoord-c47b99b8c-hflsc 40m 137Mi mycluster-datacoord-84657c87df-zf9ld 27m 207Mi mycluster-proxy-78d487487b-v4x22 20m 127Mi mycluster-proxy-78d487487b-ntsjk 20m 134Mi mycluster-etcd-2 20m 148Mi mycluster-etcd-1 19m 137Mi mycluster-etcd-0 19m 134Mi mycluster-pulsar-broker-0 19m 1465Mi
优化建议
- 调整milvus-backup并发参数:默认并发数较低,恢复时添加
--concurrency <数值>参数(比如--concurrency 16,建议设为备份Pod CPU核数的2-4倍),或修改配置文件中的restore.concurrency值,提升并行处理能力。 - 拆分恢复与索引重建流程:放弃
--restore_index参数,先仅恢复数据:
之后通过Milvus客户端调用milvus-backup restore -n mycollectioncreate_index接口手动重建索引,让Datanode集群的CPU资源被充分利用,避免备份工具单线程处理索引成为瓶颈。 - 提升milvus-backup Pod资源配额:当前备份Pod CPU已接近1核上限,可将其资源限制调高至2核CPU、512Mi内存,消除备份工具自身的资源瓶颈。
- 优化Milvus集群配置:
- 调大Datanode的
dataNode.flush.insertBufferSize参数,减少小批量插入的IO开销; - 调整Proxy的
proxy.grpc.serverMaxReceiveSize和proxy.grpc.clientMaxSendSize参数,支持更大的批量数据传输,提升恢复吞吐量。
- 调大Datanode的
- 优化备份文件存储访问:若备份文件存于远程存储,可临时同步到Milvus集群本地存储(如PV),降低恢复时的网络IO延迟。
- 临时扩容Datanode实例:当前仅1个Datanode运行,可临时扩容至3个,利用多节点并行处理数据恢复与索引重建任务,充分释放集群资源潜力。
内容的提问来源于stack exchange,提问作者R2D2
相关产品推荐
相关产品推荐

