언리얼 에디터에서 라이트맵 빌드할 때 Swarm 이라는 걸 사용하는데 이게 분산 빌드가 된다. 지금 작업하고 있는 맵에 내용물이 많아서 그런지 i7 CPU, 16G ram 장비 한 대로 Production 레벨로 빌드하면 70시간 정도 걸리는 듯...그것보다 작은 맵이긴 한데 Production 레벨로 분산 빌드하니 20시간 정도 걸리는 듯...인크레디 빌드 처럼 완벽한 병렬처리는 아닌 듯 하지만 (실시간으로 에이전트가 붙는다고 시간이 줄지 않는 것 같다.) 그래도 2-3 일 돌려야하는 것 보다는 나으니...


* 설치

언리얼 런처에서 엔진을 설치하면 준비 완료.


Swarm 관련 파일만 넣고 실행하면 agent 나 coordinator 는 실행은 되는데 UnrealLightmass 등에서 필요한 dll 들이 누락되는 경우가 있는 것 같다. (예 : XInput1_3.dll ) 18G 정도 하드 용량이 필요하긴 한데 언리얼 엔진을 설치하자.


* Coordinator 설정

엔진 설치 폴더의 Engine/Binaries/DotNET 폴더에서 SwarmCoordinator.exe 를 실행하자.


* Agent 설정

Engine/Binaries/DotNEt 폴더에서 SwarmAgent.exe 를 실행하자. 윈도우 오른쪽 아래 시스템 트레이에 SwarmAgent 아이콘이 생기는데 더블 클릭하면 설정창이 뜬다.


Settings 탭에서 아래 부분을 설정하자.

- CacheFoder : 작업에 필요한 파일을 다운받아서 작업하는 폴더

- AgentGroupName : 실행한 Agent 의 그룹명

- AllowedRemoteAgentGroup : 허용할 Agent 그룹명

- AllowedRemoteAgentName : 허용할 Agent PC 명( 모든 PC를 허용하려면 * )

- CoordinatorRemotingHost : 접속할 Coordinate PC 명 (NetBios 명칭)


- ShowDeveloperMenu : 개발자 설정 메뉴를 보이게 한다.


개발자 메뉴(DevelopersSettings) 에서 몇 몇 설정을 바꿀 수 있다.

- RemoteJobsDefaultPropcessorCount : 원격 작업을 위해 사용할 프로세스 개수 (기본은 LocalJobsDefaultProcessorCount - 1)

- RemoteJobsDefaultProcessPriority : 원격 작업을 위해 사용할 프로세스의 우선 순위. 기본이 Idle 인데 빌드 장비라면 우선순위를 높여버리자.


* 접속 확인

Agent 설정과 실행이 정상적이었다면 Coordinator 에서 Agent 목록을 확인할 수 있다. 에디터에서 빌드를 하면 다른 장비를 할당해서 빌드하는 것을 볼 수 있다.


* 문제 해결


1. Coordinator 에서 Agent 목록이 뜨질 않는다.

Agent 에서 Coordinator 로 접근이 되지 않는 상황이다. telnet 을 이용하여 coordinator 장비에 직접 접근해 보자. coordinator 는 TCP 8009 포트를 사용한다. IP 를 이용하여 설정하면 안되는 것 같다.


2. 빌드 시에 Agent 에서 "failed to connect" 메시지

빌드 시에 Agent 에서 "failed to connect" 라는 메시지가 뜨면서 빌드를 못하고 있다. Agent 간에 접근이 되지 않는 상황으로 보인다. agent 가 사용하는 포트를 방화벽에서 허용해주면 된다. 귀찮으니보안이 확실한 내부망이라면 일단 방화벽을 내려버리자.


URL : https://forums.epicgames.com/threads/965487-Setup-Swarm

728x90

+ Recent posts