11장. 이벤트 기반 Ansible 컨트롤러의 성능 튜닝
이벤트 기반 Ansible은 확장성이 뛰어나고 유연한 자동화 기능입니다. 이벤트 기반 Ansible 컨트롤러는 이벤트 기반 Ansible 자동화가 수행하는 인터페이스를 제공합니다. 다음을 통해 이벤트 기반 Ansible 컨트롤러를 조정하여 성능 및 확장성을 최적화합니다.
- 워크로드 특성화
- 시스템 수준 모니터링
- 성능 문제 해결
11.1. 워크로드 특성화
이벤트 기반 Ansible 컨트롤러에서 워크로드에는 룰북 활성화 및 수신되는 이벤트 수가 포함됩니다. 이벤트 기반 Ansible 컨트롤러 워크로드를 특성화하려면 다음 요인을 고려하십시오.
- 동시 룰북 활성화 수
- 이벤트 기반 Ansible 컨트롤러에서 수신하는 이벤트 수
11.1.1. 동시 룰북 활성화 수 수정
기본적으로 이벤트 기반 Ansible 컨트롤러는 노드당 12개의 룰북 활성화를 허용합니다. 예를 들어 두 개의 작업자 또는 하이브리드 노드를 사용하면 총 24개의 활성화 제한이 동시에 실행됩니다. 24개 이상의 룰북 활성화가 생성되면 다음 룰북 활성화는 사용 가능한 룰북 활성화 작업자가 있을 때까지 대기한다는 것입니다. 이 경우 이벤트 기반 Ansible 컨트롤러 인스턴스에 사용 가능한 메모리와 CPU가 충분한 경우에도 룰북 활성화 상태가 Pending 로 표시됩니다. 이 동작을 변경하려면 기본 실행 중인 룰북 활성화 수를 변경해야 합니다.
-
MAX_RUNNING_ACTIVATIONS
의 값은 인스턴스 크기를 수정할 때 변경되지 않으므로 수동으로 조정해야 합니다. - OpenShift Container Platform에 이벤트 기반 Ansible을 설치하는 경우, OpenShift Container Platform에 이벤트 기반 Ansible을 설치할 때 작업자 노드의 개념이 없기 때문에 노드당 12개의 룰북 활성화가 글로벌 값입니다. 자세한 내용은 OpenShift Container Platform 설치에 있는 이벤트 기반 Ansible 컨트롤러 설치 중 또는 이후에 동시 룰북 활성화 수 수정 을 참조하십시오.
11.1.1.1. 이벤트 기반 Ansible 컨트롤러 설치 중 동시 룰북 활성화 수 수정
기본적으로 이벤트 기반 Ansible 컨트롤러는 노드당 12개의 룰북 활성화를 허용합니다. 예를 들어 두 개의 작업자 또는 하이브리드 노드를 사용하면 총 24개의 활성화 제한이 동시에 실행됩니다. 다음 절차에 따라 설치 중에 이 기본값을 수정할 수 있습니다.
프로세스
VM 설치 프로그램에 변수를 제공합니다.
- 설정 인벤토리 파일로 이동합니다.
-
[all:vars] 섹션에
automationedacontroller_max_running_activations
를 추가합니다. 예를 들어automationedacontroller_max_running_activations=16
. - 설정을 실행합니다.
11.1.1.2. 이벤트 기반 Ansible 컨트롤러 설치 후 동시 룰북 활성화 수 수정
기본적으로 이벤트 기반 Ansible 컨트롤러는 노드당 12개의 룰북 활성화를 허용합니다. 예를 들어 두 개의 작업자 또는 하이브리드 노드를 사용하면 총 24개의 활성화 제한이 동시에 실행됩니다. 다음 절차에 따라 설치 후 이 기본값을 수정할 수 있습니다.
프로세스
-
/etc/ansible-automation-platform/eda/settings.yaml
에서 환경 파일로 이동합니다. -
필요한 최대 실행 중인 활성화 수를 선택합니다. 예를 들어
MAX_RUNNING_ACTIVATIONS = 16
-
다음 명령을 사용하여 이벤트 기반 Ansible 서비스를 다시 시작합니다.
automation-eda-controller-service 재시작
추가 리소스
- 룰북 활성화에 대한 자세한 내용은 규칙북 활성화를 참조하십시오. https://access.redhat.com/documentation/en-us/red_hat_ansible_automation_platform/2.4/html-single/event-driven_ansible_controller_user_guide/index#eda-rulebook-activations
- OpenShift Container Platform에서 이벤트 기반 Ansible 사용 중 또는 이후에 동시 룰북 활성화를 수정하는 방법에 대한 자세한 내용은 EDA_MAX_RUNNING_ACTIVATIONS 를 참조하십시오.
11.1.2. 각 룰북 활성화에 대한 기본 메모리 제한 수정
메모리 사용량은 이벤트 기반 Ansible 컨트롤러에서 처리해야 하는 이벤트 수를 기반으로 합니다. 각 룰북 활성화 컨테이너에는 200MB 메모리 제한이 있습니다. 예를 들어 CPU 4GB와 16GB의 RAM을 사용하면 할당된 200MB 메모리 제한이 있는 하나의 룰북 활성화 컨테이너는 분당 150,000개 이상의 이벤트를 처리할 수 없습니다. 병렬 실행 룰북 활성화 수가 높으면 각 룰북 활성화가 처리할 수 있는 최대 이벤트 수가 줄어듭니다. 매우 높은 속도로 들어오는 이벤트가 너무 많으면 컨테이너는 이벤트를 처리하려는 메모리가 부족할 수 있습니다. 그러면 컨테이너가 종료되고 룰북 활성화가 137개의 상태 코드와 함께 실패합니다.
이 오류를 해결하기 위해 다음 절차 중 하나를 사용하여 높은 속도로 많은 이벤트를 처리하기 위해 룰북 활성화에 할당된 메모리 양을 늘릴 수 있습니다.
- 설치 중 각 룰북 활성화의 기본 메모리 제한 수정
- 설치 후 각 룰북 활성화의 기본 메모리 제한 수정
11.1.2.1. 설치 중 각 룰북 활성화의 기본 메모리 제한 수정
기본적으로 각 룰북 활성화 컨테이너에는 200MB 메모리 제한이 있습니다. 다음 절차에 따라 설치 중에 이 기본값을 수정할 수 있습니다.
프로세스
- 설정 인벤토리 파일로 이동합니다.
-
[all:vars] 섹션에
automationedacontroller_podman_mem_limit
를 추가합니다. 예를 들어automationedacontroller_podman_mem_limit='400m'
입니다. - 설정을 실행합니다.
11.1.2.2. 설치 후 각 룰북 활성화의 기본 메모리 제한 수정
기본적으로 각 룰북 활성화 컨테이너에는 200MB 메모리 제한이 있습니다. 다음 절차에 따라 설치 후 이 기본값을 수정할 수 있습니다.
프로세스
-
/etc/ansible-automation-platform/eda/settings.yaml
에서 환경 파일로 이동합니다. -
기본 컨테이너 메모리 제한을 수정합니다. 예를 들어
PODMAN_MEM_LIMIT = '300m'
입니다. -
Automation-
eda-controller-service 재시작을 사용하여 이벤트 기반 Ansible 컨트롤러 서비스를 다시 시작합니다
.