본문으로 바로가기
반응형

Ansible Tower 용량 알고리즘은 인스턴스에서 사용할 수 있는 리소스의 양과 실행 중인 작업의 크기를 고려하여 인스턴스에서 실행할 수 있는 작업 수를 결정합니다(Impact). 이를 결정하는 데 사용되는 알고리즘은 전적으로 다음 두 가지를 기반으로 합니다.

시스템에서 사용할 수 있는 메모리 양( mem_capacity ) : 아래 공식을 따르며, 포크당 필요한 메모리 양을 기준으로 계산됩니다.
mem / mem_per_fork (mem_per_fork : 환경 변수를 설정하여 값 을 제어할 수 있음. 기본값 100)

 

시스템에서 사용할 수 있는 CPU의 양( cpu_capacity ) : 포크당 필요한 CPU 리소스 양을 확인합니다. 이에 대한 기준 값은 코어당 4개의 포크이며 아래의 공식을 따릅니다.
cpus * fork_per_cpu (fork_per_cpu : 환경 변수를 설정하여 값 을 제어할 수 있음. 기본값 4)

 

 

위 내용을 기반으로 표로 정리해보면 아래와 같은 알고리즘 방식으로 fork수를 계산할 수 있습니다. 

 

 

1. 메모리에 따른 fork 수 계산

기본값은 메모리 용량에 기준으로 fork 수를 계산하며, tower 서비스를 위해 2GB 메모리르 예약합니다.

메모리 용량에 따른 계산방식

2. CPU 코어 리소스에 따른 fork 수 계산

CPU 코어 리소스에 따른 계산방식

 

 

## detail :

https://docs.ansible.com/ansible-tower/latest/html/userguide/jobs.html#resource-determination-for-capacity-algorithm

728x90