在安装 ABBYY Vantage 时,服务和工作进程(worker)的数量取决于负载。ABBYY Vantage 会自动伸缩服务和工作进程,以优化文档处理性能。本指南介绍了在不同负载情况下 ABBYY Vantage 所需的资源,并为系统管理员提供关于如何以正确方式为 ABBYY Vantage 配置这些资源的建议。
资源消耗取决于您的文档处理场景:所处理文档的类型、所使用的 Skill,以及页面负载(即在某一时间段内处理的页数)。
参考的 高可用性 配置在以下负载下进行了测试,测试时使用默认的 Process 技能处理 3 页和 50 页的发票文档:
- 每 8 小时处理 50,000 页
- 每 8 小时处理 100,000 页
- 每 8 小时处理 150,000 页
- 每 8 小时处理 200,000 页
参考的 非高可用性 配置在以下负载下进行了测试,测试时使用默认的 Process 技能处理 3 页的发票文档:
- 每 8 小时处理 10,000 页
- 每 8 小时处理 30,000 页
- 每 8 小时处理 50,000 页
非高可用性配置不支持使用 Deep Learning 活动来训练 Skill。
在对参考配置进行测试期间,通过 REST API 将文件发送到系统。使用了默认的 Process 技能及以下工作流:
- 导入文件。
- 识别文档。
- 对文档进行分类并确定文档类型。
- 从文档中提取数据。
- 将数据导出为 JSON。
| 节点类型 | CPU 核心数(每个节点) | 内存 (GB)(每个节点) | 磁盘容量 (GB) |
|---|
| 服务节点 | 12 | 48 | 120* |
| 工作节点 | 12 | 48 | 120 |
*上述磁盘容量要求指的是最小容量要求,实际可能需要更多磁盘空间。默认情况下,Vantage 会在虚拟机上安装 NFS 文件存储。在这种情况下,作为第一个服务节点的虚拟机将根据负载需要额外的磁盘空间。
| Configuration | Storage | Storage location | Disk size, GB |
|---|
| 无高可用配置 | 内部 NFS | 服务节点 | 500(适用于每 8 小时处理 10,000 页文档) |
| 无高可用配置 | 外部 NFS | NFS 服务器主机 | 500(适用于每 8 小时处理 10,000 页文档) |
| 高可用配置 | 外部 NFS | NFS 服务器主机 | 50(适用于每 8 小时处理 10,000 页文档) |
| 高可用配置 | 本地持久卷 | 第一个服务节点(来自清单文件) | 500(适用于每 8 小时处理 10,000 页文档) |
如果您使用了大型数据目录(data catalog)、包含大量活动的 Skill,或者将数据导出到共享文件夹,可能需要额外的存储空间。
如果负载超过每 8 小时 10,000 页,我们建议使用外部存储。
根据页面负载情况,ABBYY Vantage 在每种配置下高效处理文档所需的资源如下:
| 负载(页/8 小时) | 服务节点数量(3 页发票) | 服务节点数量(50 页发票) | 工作节点数量(3 页发票) | 工作节点数量(50 页发票) |
|---|
| 50,000 | 4 | 4 | 4 | 4 |
| 100,000 | 4 | 4 | 5 | 7 |
| 150,000 | 4 | 4 | 7 | 9 |
| 200,000 | 4 | 4 | 8 | 11 |
在测试期间,还收集了用于 Blob 存储的磁盘输入/输出(I/O)操作统计数据。通常可以认为,在您的环境中这些数值不会超过如下所示的水平:
| 负载(页/8 小时) | 磁盘 I/O 操作次数/秒(3 页的发票) | 磁盘 I/O 操作次数/秒(50 页的发票) |
|---|
| 50,000 | 100 | 50 |
| 100,000 | 250 | 100 |
| 150,000 | 400 | 170 |
| 200,000 | 600 | 230 |
| 负载(页数/8 小时) | 服务节点数 | worker 节点数 |
|---|
| 10,000 | 1 | 1* |
| 30,000 | 1 | 3 |
| 50,000 | 1 | 3 |
*包含一个 worker 节点的配置仅用于测试目的,不支持执行任何与 Skill 训练相关的活动。
在对 ABBYY Vantage 进行扩展时,未发现文档处理时间有增加。
系统管理员可以向集群中添加额外的工作节点,以提高可处理的工作负载。有关如何准备节点的更多信息,请参阅系统要求。
要添加工作节点,请按照以下步骤操作:
- 打开安装目录中的清单文件。
- 在
[abbyy_workers] 部分,通过指定名称和 IP 地址来新增一个节点。
- 运行安装程序:
docker run -it \
-v $PWD/kube:/root/.kube \
-v $PWD/ssh/ansible:/root/.ssh/ansible \
-v "//var/run/docker.sock:/var/run/docker.sock" \
-v $PWD/inventory:/ansible/inventories/k8s/inventory \
-v $PWD/env_specific.yml:/ansible/inventories/k8s/group_vars/all/env_specific.yml \
-v $PWD/ssl:/ansible/files/ssl:ro \
--privileged \
registry.local/vantage/vantage-k8s:2.7.1
- 运行以下 Playbook:
ansible-playbook -i inventories/k8s -v playbooks/4-Kubernetes-k8s.yml