第 8 章 Event-Driven Ansible 控制器的性能调整
事件驱动 Ansible 是一个高度可扩展的、灵活的自动化功能。Event-Driven Ansible 控制器提供 Event-Driven Ansible 自动化执行的接口。通过调优您的事件驱动 Ansible 控制器,以优化性能和可伸缩性:
- 特征您的工作负载
- 系统级别监控
- 性能故障排除
8.1. 特征您的工作负载 复制链接链接已复制到粘贴板!
在 Event-Driven Ansible 控制器中,您的工作负载包括正在接收的规则手册激活和事件的数量。请考虑以下因素来特征您的 Event-Driven Ansible 控制器工作负载:
- 同步规则手册激活数量
- Event-Driven Ansible 控制器收到的事件数
8.1.1. 修改同时规则手册激活的数量 复制链接链接已复制到粘贴板!
默认情况下,Event-Driven Ansible 控制器允许同时运行 12 个规则手册激活。如果创建超过 12 个规则手册激活,则预期的行为是后续规则手册激活等待等待,直到有可用的规则手册激活 worker。在这种情况下,规则手册激活状态将显示为"pending",即使您的 Event-Driven Ansible 控制器实例上有足够的可用内存和 CPU。要更改此行为,您必须更改运行规则手册激活的默认最大数量。
注意: EDA_MAX_RUNNING_ACTIVATIONS 的值不会随着实例大小的变化而改变,因此需要手动调整。
8.1.1.1. 在 Event-Driven Ansible 控制器安装过程中修改同时规则手册激活的数量 复制链接链接已复制到粘贴板!
默认情况下,Event-Driven Ansible 控制器允许同时运行 12 个激活。您可以按照以下流程在安装过程中修改此默认值:
流程
为虚拟机安装程序提供变量:
- 导航到设置清单文件。
-
在 [all:vars] 部分添加
automationedacontroller_max_running_activations。例如:automationedacontroller_max_running_activations=16。 - 运行设置。
8.1.1.2. 在 Event-Driven Ansible 控制器安装后修改同时规则手册激活的数量 复制链接链接已复制到粘贴板!
默认情况下,Event-Driven Ansible 控制器允许同时运行 12 个激活。您可以按照以下流程在安装后修改此默认值:
流程
-
导航到
/etc/ansible-automation-platform/eda中的环境文件。 -
选择您需要的最大运行激活数。例如,
EDA_MAX_RUNNING_ACTIVATIONS = 16 -
使用以下命令重启 EDA 服务:
systemctl restart automation-eda-controller.target
Resources
有关规则手册激活的更多信息,请参阅 规则手册激活。
8.1.2. 修改每个规则手册激活的默认内存限值 复制链接链接已复制到粘贴板!
内存用量基于 Event-Driven Ansible 控制器必须处理的事件数。每个规则手册激活容器都有 200MB 内存限制。例如,如果有 4 个 CPU 和 16GB RAM,一个分配了 200MB 内存限值的 rulebook 激活容器每分钟无法处理超过 150,000 个事件。如果并行运行规则手册激活的数量较高,则每个规则手册激活的最大事件数可以减少。如果速度非常高,则容器可能会耗尽处理事件的内存。这将终止容器,您的规则手册激活将失败,状态码为 137。
要解决这个问题,您可以增加分配给规则手册激活的内存量,以便使用以下方法之一处理大量事件:
- 在安装过程中修改每个规则手册激活的默认内存限值
- 安装后修改每个规则手册激活的默认内存限值
8.1.2.1. 在安装过程中修改每个规则手册激活的默认内存限值 复制链接链接已复制到粘贴板!
默认情况下,每个规则手册激活容器都有 200MB 内存限制。您可以按照以下流程在安装过程中修改此默认值:
流程
- 导航到设置清单文件。
-
在 [all:vars] 部分添加
automationedacontroller_podman_mem_limit。例如,Automationedacontroller_podman_mem_limit='400m'。 - 运行设置。
8.1.2.2. 安装后修改每个规则手册激活的默认内存限值 复制链接链接已复制到粘贴板!
默认情况下,每个规则手册激活容器都有 200MB 内存限制。您可以按照以下流程在安装后修改此默认值:
流程
-
导航到
/etc/ansible-automation-platform/eda中的环境文件。 -
修改默认容器内存限值。例如,
EDA_PODMAN_MEM_LIMIT = '300m'。 -
使用
systemctl restart automation-eda-controller.target重启 Event-Driven Ansible 控制器服务。