在安装 ABBYY Vantage 时,服务和工作进程的数量取决于负载。ABBYY Vantage 会自动扩展服务和工作进程,以优化文档处理。本文档包含 ABBYY Vantage 在不同负载下所需资源的信息,并向系统管理员就如何正确为 ABBYY Vantage 提供这些资源提出建议。
资源消耗取决于您的文档处理场景:所处理的文档类型、使用的技能以及页面处理量(即在某个时间段内处理的页面数量)。
参考的 高可用 配置在使用默认流程技能处理 3 页和 50 页发票时进行了测试,页面处理量如下:
- 每 8 小时处理 50,000 页
- 每 8 小时处理 100,000 页
- 每 8 小时处理 150,000 页
- 每 8 小时处理 200,000 页
参考的 非高可用 配置在使用默认流程技能处理 3 页发票时进行了测试,页面处理量如下:
- 每 8 小时处理 10,000 页
- 每 8 小时处理 30,000 页
- 每 8 小时处理 50,000 页
非高可用配置不支持使用 Deep Learning 活动来训练技能。
在对参考配置进行测试期间,通过 REST API 将文件发送到系统中。使用了具有以下工作流的默认流程技能:
- 导入文件。
- 识别文档。
- 分类并确定文档类型。
- 从文档中提取数据。
- 将数据导出为 JSON。
| 节点类型 | CPU 核心数(每个节点) | 内存(GB,每个节点) | 磁盘大小(GB) |
|---|
| 服务节点 | 12 | 48 | 120* |
| 工作节点 | 12 | 48 | 120 |
*上面列出的磁盘大小为最低要求,实际可能需要更多磁盘空间。默认情况下,Vantage 会在虚拟机上安装 NFS 文件存储。在这种情况下,作为第一个服务节点的虚拟机将根据负载需要额外的磁盘空间。
| 配置 | 存储类型 | 存储位置 | 磁盘大小(GB) |
|---|
| 无高可用性 | 内部 NFS | 服务节点 | 500(按每 8 小时处理 10,000 个页面计算) |
| 无高可用性 | 外部 NFS | NFS 服务器主机 | 500(按每 8 小时处理 10,000 个页面计算) |
| 高可用性 | 外部 NFS | NFS 服务器主机 | 50(按每 8 小时处理 10,000 个页面计算) |
| 高可用性 | 本地持久卷 | 首个服务节点(在清单文件中定义) | 500(按每 8 小时处理 10,000 个页面计算) |
如果您使用大型数据目录、包含大量活动的技能,或将数据导出到共享文件夹,可能需要额外的存储空间。
如果负载超过每 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 存储的磁盘输入/输出操作统计数据。预计在您的环境中,这些数值不会高于下列数值:
| 负载(页面数/8 小时) | 磁盘 I/O 操作次数/秒(3 页的发票) | 磁盘 I/O 操作次数/秒(50 页的发票) |
|---|
| 50,000 | 100 | 50 |
| 100,000 | 250 | 100 |
| 150,000 | 400 | 170 |
| 200,000 | 600 | 230 |
| 负载(页面数/8 小时) | 服务节点数 | 工作节点数 |
|---|
| 10,000 | 1 | 1* |
| 30,000 | 1 | 3 |
| 50,000 | 1 | 3 |
*仅建议将单个工作节点的配置用于测试目的,不支持执行任何技能训练活动。
在扩展 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