8장. 이벤트 기반 Ansible 컨트롤러의 성능 튜닝
이벤트 기반 Ansible은 확장성이 뛰어나고 유연한 자동화 기능입니다. 이벤트 기반 Ansible 컨트롤러는 이벤트 기반 Ansible 자동화가 수행하는 인터페이스를 제공합니다. 다음을 통해 이벤트 기반 Ansible 컨트롤러를 조정하여 성능 및 확장성을 최적화합니다.
- 워크로드 특성화
- 시스템 수준 모니터링
- 성능 문제 해결
8.1. 워크로드 특성화
이벤트 기반 Ansible 컨트롤러에서 워크로드에는 룰북 활성화 및 수신되는 이벤트 수가 포함됩니다. 이벤트 기반 Ansible 컨트롤러 워크로드를 특성화하려면 다음 요인을 고려하십시오.
- 동시 룰북 활성화 수
- 이벤트 기반 Ansible 컨트롤러에서 수신하는 이벤트 수
8.1.1. 동시 룰북 활성화 수 수정
기본적으로 이벤트 기반 Ansible 컨트롤러는 12개의 룰북 활성화를 동시에 실행할 수 있습니다. 12개 이상의 룰북 활성화가 생성되는 경우, 사용 가능한 룰북 활성화 작업자가 있을 때까지 후속 룰북 활성화가 보류 중이어야 합니다. 이 경우 이벤트 기반 Ansible 컨트롤러 인스턴스에 사용 가능한 메모리와 CPU가 충분한 경우에도 룰북 활성화 상태가 "보류 중"으로 표시됩니다. 이 동작을 변경하려면 기본 실행 중인 룰북 활성화 수를 변경해야 합니다.
참고: EDA_MAX_RUNNING_ACTIVATIONS
의 값은 인스턴스 크기 변경 시 변경되지 않으므로 수동으로 조정해야 합니다.
8.1.1.1. 이벤트 기반 Ansible 컨트롤러 설치 중 동시 룰북 활성화 수 수정
기본적으로 이벤트 기반 Ansible 컨트롤러는 12개의 활성화를 동시에 실행할 수 있습니다. 다음 절차에 따라 설치 중에 이 기본값을 수정할 수 있습니다.
절차
VM 설치 프로그램에 변수를 제공합니다.
- 설정 인벤토리 파일로 이동합니다.
-
[all:vars] 섹션에
automationedacontroller_max_running_activations
를 추가합니다. 예를 들어automationedacontroller_max_running_activations=16
. - 설정을 실행합니다.
8.1.1.2. 이벤트 기반 Ansible 컨트롤러 설치 후 동시 룰북 활성화 수 수정
기본적으로 이벤트 기반 Ansible 컨트롤러는 12개의 활성화를 동시에 실행할 수 있습니다. 다음 절차에 따라 설치 후 이 기본값을 수정할 수 있습니다.
절차
-
/etc/ansible-automation-platform/eda
의 환경 파일로 이동합니다. -
필요한 최대 실행 중인 활성화 수를 선택합니다. 예를 들어
EDA_MAX_RUNNING_ACTIVATIONS = 16
-
다음 명령을 사용하여 EDA 서비스를 다시 시작합니다.
systemctl restart automation-eda-controller.target
Resources
룰북 활성화에 대한 자세한 내용은 규칙북 활성화를 참조하십시오. 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
8.1.2. 각 룰북 활성화에 대한 기본 메모리 제한 수정
메모리 사용량은 이벤트 기반 Ansible 컨트롤러에서 처리해야 하는 이벤트 수를 기반으로 합니다. 각 룰북 활성화 컨테이너에는 200MB 메모리 제한이 있습니다. 예를 들어 CPU 4GB와 16GB의 RAM을 사용하면 할당된 200MB 메모리 제한이 있는 하나의 룰북 활성화 컨테이너는 분당 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 컨트롤러 서비스를 다시 시작합니다.