Version: 2022.2
언어: 한국어
UDP 문제 해결
XR

Unity 액셀러레이터

개요

The Unity Accelerator is a caching proxy agent that keeps copies of a team’s imported assets to speed up teamwork. The goal of the accelerator is to help teams reduce iteration time. An Accelerator coordinates asset sharing when your team is working on the same local network so that you don’t need to reimport portions of your project. This is done via the Asset Import Pipeline v2 Unity Editor capabilities.

로컬 네트워크에 액셀러레이터를 설치하면 Unity 에디터(버전 2019.3 이상, 아래 Unity 에디터 요구 사항 참조)는 액셀러레이터와 커뮤니케이션하여 다른 팀원들이 변경하거나 빌드한 에셋을 검색해서 가져옵니다. 액셀러레이터는 이러한 에셋의 임시 복사본을 보관하므로 에셋을 검색해서 가져오거나 다시 임포트하는 데 시간과 대역폭이 낭비되지 않습니다.

액셀러레이터 개요
액셀러레이터 개요

콘텐츠

액셀러레이터 설치

요구 사항

로컬 호스팅 요구 사항

팀원들이 자주 일하는 각 네트워크에 액셀러레이터를 설치하십시오. 액셀러레이터를 호스트할 수 있는 컴퓨터가 로컬 네트워크에서 실행되고 있어야 합니다. 호스트를 선택할 때 다음 요구 사항을 고려하십시오.

  • 로컬 호스트가 다음 운영체제 중 하나를 실행해야 합니다.
    • Linux (Ubuntu 16.04 or Ubuntu 18.04)
      For Linux you must install Acccelerator as a root user.
    • Windows Server 2008R2 / Windows 7 이상(64비트)
    • Mac OS X 10.12 이상(64비트)
  • 로컬 호스트에 대부분의 프로젝트 파일을 호스팅할 수 있는 충분한 로컬 스토리지 공간이 있어야 합니다. 운영체제를 호스트하는 드라이브와 별개로 솔리드 스테이트 드라이브를 사용하는 것이 좋습니다.
  • 로컬 호스트에는 이용 가능한 합리적인 양의 메모리가 있어야 합니다. 최소 RAM은 2GB여야 하지만, 더 많은 메모리를 이용할 수 있는 경우 운영체제에서 캐싱된 항목을 버퍼링하는 데 사용하여 자주 액세스하는 항목에 대한 성능을 높입니다. 일반적인 권장 RAM은 32GB입니다.
  • 로컬 호스트는 팀원들과 동일한 네트워크에 연결되어 있거나, 액셀러레이터의 IP 주소 및 포트(TCP)에 대한 액세스를 허용하는 적절한 방화벽 정책으로 로컬에서 라우팅이 가능해야 합니다.
  • Unity 조직 내 권한 구조에 관계없이 호스트 컴퓨터에 액세스할 수 있는 사람은 누구나 프로젝트 파일에 액세스할 수 있습니다. 따라서 Unity는 조직 소유자 또는 관리자만 액셀러레이터에 액세스하고 상호작용할 수 있도록 해당 컴퓨터를 제한할 것을 권장합니다.

Unity 에디터 요구 사항

Unity 프로젝트는 2019.3 버전 이상의 Unity 엔진을 사용해야 합니다.

설치 프로그램을 통해 액셀러레이터 설치

You can download and install Unity Accelerator directly and uncheck the registration token during installation:

참고: Linux 시스템에서 액셀러레이터를 설치하는 경우 액셀러레이터 버전을 확인하십시오.

Docker Hub를 통해 액셀러레이터를 설치할 수도 있습니다.

“헤드리스” 컴퓨터에 액셀러레이터 설치

각 플랫폼에서 커맨드 라인을 통해 설치 프로그램을 실행할 수 있습니다. --help 인자를 사용하여 설치 프로그램을 실행하면 이용 가능한 다양한 옵션이 표시됩니다. 프롬프트 없이 전체 설치를 진행하려면 다음에 대한 값을 제공해야 합니다.

  • --storagedir는 파일과 설정을 저장할 액셀러레이터 디렉토리를 설정합니다.
  • --registration-token specifies the token provided in the developer dashboard after creating the Accelerator.
  • 아무것도 쿼리하지 않아야 하는 자동 설치에는 --mode unattended를 사용하십시오. 기본값 또는 제공된 다른 옵션 플래그의 값을 사용합니다.
  • Mac OS X에서는 디스크 이미지(DMG)를 마운트하고 설치 프로그램 앱의 디렉토리(Contents/MacOS/installbuilder.sh에 있음)에 위치한 바이너리를 실행해야 합니다.

에디터가 액셀러레이터를 사용하도록 설정

액셀러레이터를 설치하면 설정 마법사의 마지막 단계에 에디터에서 참조할 IP 주소와 포트가 다음의 포맷으로 표시됩니다.

[IP]:[Port]

에디터가 해당 액셀러레이터를 에셋 파이프라인 버전 2 캐시 서버로 사용하도록 하려면 다음 절차를 따르십시오.

  1. Unity 에디터에서 Edit > Project Settings…(Windows) 또는 Unity > Project Settings…(OSX)를 선택합니다.
  2. 왼쪽 메뉴에서 Editor를 선택합니다.
  3. Cache Server 섹션에서 ModeEnabled로 설정합니다.
  4. 설정 마법사에서 IP address에 액셀러레이터의 IP 주소를 입력합니다.
  5. Check Connection 버튼을 눌러 연결을 테스트합니다.
프로젝트 설정
프로젝트 설정

다른 프로젝트와 격리하려는 경우 선택적으로 기본값과 다른 네임스페이스 접두사를 선택할 수 있습니다. 필요에 따라 업로드 또는 다운로드를 개별적으로 비활성화할 수도 있습니다. 예를 들어 빌드 시스템은 업로드만 활성화하고, 개발자 에디터는 다운로드만 활성화할 수 있습니다. TLS/SSL 옵션은 2020.1 이상 에디터 버전에서만 제공되는 기능이며, 액셀러레이터를 TLS용으로 설정해야 합니다.

메인 에디터 뷰에서 오른쪽 하단의 상태 표시줄을 통해 액셀러레이터 연결을 확인할 수 있습니다(2020.1 이상 에디터 버전만 해당).

프로젝트 연결
프로젝트 연결

원하는 경우 전역 설정을 통해 사용할 액셀러레이터를 구성할 수 있습니다. 전역 설정은 프로젝트 설정에서 오버라이드하지 않는 한 모든 프로젝트에서 기본적으로 사용됩니다. 전역 설정을 구성하려면 Edit > Preferences… 메뉴 항목을 선택하십시오.

프로젝트 연결
프로젝트 연결

Docker Hub를 통해 액셀러레이터 설치

컨테이너는 Docker Hub의 https://hub.docker.com/repository/docker/unitytechnologies/accelerator에서 제공됩니다.

초기 설정

Unity는 액셀러레이터 설정 및 캐시를 호스팅하기 위해 영구 스토리지 영역을 사용할 것을 권장합니다. 이를 처음으로 설정하려면 컨테이너를 처음 실행할 때 다음 변수 중 하나 이상을 사용하는 것이 좋습니다(일부 예제는 아래에 있음). 변수는 시작 시 설정 파일을 찾지 못하는 경우에만 사용되므로, 연속 실행 시에는 설정된 상태로 실행하는 것이 안전합니다.

변수 사용
DISABLE_USAGE_STATS 사용 통계를 비활성화하려면 true로 설정합니다. 사용 통계를 활성화하면 Unity에 중요한 피드백을 제공하여 액셀러레이터의 기능과 성능을 향상하도록 도울 수 있습니다.
USER 로컬 빌트인 대시보드의 사용자 이름입니다.
PASSWORD 로컬 빌트인 대시보드의 비밀번호입니다.
CERT_HOSTNAME TLS 지원에 사용할 호스트 이름입니다. 리디렉션 등에 사용되며, 아래의 CERT_PEM 및 KEY_PEM과 함께 사용됩니다.
CERT_PEM TLS 지원에 사용할 cert.pem의 경로입니다. CERT_HOSTNAME을 설정하고 CERT_PEM을 설정하지 않으면 <persist_dir>/cert.pem이라고 간주됩니다.
KEY_PEM TLS 지원에 사용할 key.pem의 경로입니다. CERT_HOSTNAME을 설정하고 KEY_PEM을 설정하지 않으면 <persist_dir>/key.pem이라고 간주됩니다.

To override TLS settings, ensure you have your cert.pem and key.pem in the /agent path specified and then include a CERT_HOSTNAME like this:

$ docker run --rm -ti -v "${PWD}/agent:/agent" -e 'CERT_HOSTNAME=myhostname.com' -e 'COLLAB_REGISTRATION_TOKEN=ft0bJvbRD' unitytechnologies/accelerator:latest

후속 실행

또한 액셀러레이터가 일반적으로 인식하는 환경 변수를 설정할 수도 있습니다. unity-accelerator --all-help를 확인하고 Default: $SOME_VARIABLE을 나타내는 옵션을 찾으십시오. 그러지 않으면 컨테이너가 다음의 두 가지를 설정합니다.

변수 사용
UNITY_ACCELERATOR_PERSIST 컨테이너 기본값은 /agent입니다. 이는 unity-accelerator.cfg와 기타 영구 데이터가 상주하는 디렉토리입니다(cachedir은 다를 수 있음).
UNITY_ACCELERATOR_LOG_STDOUT 컨테이너 기본값은 true입니다. true이면 로그를 stdout에만 출력합니다. 영구 디렉토리 내에 실제 로그 파일을 작성하려는 경우 false입니다.

컨테이너 실행

Unity는 Docker 이미지에 서명하므로 Docker Content Trust를 활성화할 것을 적극 권장합니다.

$ export DOCKER_CONTENT_TRUST=1

일반적으로 다음과 같이 액셀러레이터를 실행할 수 있어야 합니다.

$ docker run -p 80:80 -p 443:443 -p 10080:10080 -v "${PWD}/agent:/agent" unitytechnologies/accelerator:latest

하지만 액셀러레이터가 설정 및 캐싱 아티팩트를 저장할 다른 위치를 선택하려는 경우 다음과 같이 추가 환경 변수 설정 값을 제공하도록 선택할 수 있습니다.

$ docker run -p 80:80 -p 443:443 -p 10080:10080 -v "${PWD}/agent:/mnt/another_spot" -e "UNITY_ACCELERATOR_PERSIST=/mnt/another_spot" -e "UNITY_ACCELERATOR_DEBUG=true" unitytechnologies/accelerator:latest

로컬 대시보드에 대한 사용자 이름과 비밀번호를 설정하기 위해 USER 및 PASSWORD 환경 변수를 사용할 수 있습니다.

$ docker run -p 80:80 --env PASSWORD=[PASSWORD] --env USER=[USERNAME] unitytechnologies/accelerator:latest

노출된 포트

80, 443, 10080, 10443은 Unity 액셀러레이터에서 사용하는 포트의 기본값입니다.

소스 에셋 보안

Unity 팀즈 어드밴스드에서 사용할 경우 각 액셀러레이터는 자체 보안 인증서를 수신하여 조직에 액세스할 권한이 있음을 증명합니다. 액셀러레이터가 콘텐츠를 업로드하거나 다운로드하기 전에 요청을 하는 Unity 에디터가 SSL/TLS를 사용하여 액셀러레이터에 안전하게 접속하고 인증을 확인합니다. Unity 에디터가 액셀러레이터를 발견한 후 접속하면 일반 Unity 사용자 토큰을 전달하는 대신, Unity 아이덴티티 서비스에서 특수 토큰을 수신합니다. 이 토큰은 사용자 ID를 확인하고 조직 내 단일 프로젝트에 액세스합니다. 따라서 액셀러레이터를 사용하는 동안 다른 조직 및 프로젝트에 대한 액세스를 보호할 수 있습니다.

또는 Unity 에디터를 실행할 때 커맨드 라인 인자를 사용하여 액셀러레이터 캐시 서버 설정 세부 정보를 제공할 수도 있습니다.

액셀러레이터 캐시 서버를 사용하도록 지정하려면 -EnableCacheServer 인자를 사용하고, 주소와 포트 번호를 지정하려면 -cacheServerEndpoint Address:Port를 사용하고 Address와 Port를 캐시 서버의 세부 정보로 바꾸십시오.

참고: 액셀러레이터 캐시 서버를 사용하려면 프로젝트에서 에셋 데이터베이스 V2(ADB2)를 사용해야 합니다. -adb2 인자를 사용하여 커맨드 라인에서 Unity를 실행할 때 ADB2로 강제로 업그레이드할 수 있습니다.

자세한 내용은 커맨드 라인 인자를 참조하십시오.

액셀러레이터 모니터링

로컬 관리자 대시보드

액셀러레이터에는 빠른 모니터링 및 설정 변경을 위한 빌트인 대시보드가 있습니다.

액셀러레이터 설정
액셀러레이터 설정

대시보드 URL이 무엇인지 확인하는 방법은 커맨드 라인 툴 섹션을 참조하십시오. 액셀러레이터의 IP와 포트를 알고 있는 경우 http://ip:port/dashboard를 사용하면 액셀러레이터가 필요한 리디렉션을 처리합니다. 전체 지표 모니터링은 액셀러레이터 지표에 직접 액세스를 참조하십시오. 액셀러레이터의 전체 설정은 해당 unity-accelerator.cfg 파일에서 이용할 수 있습니다.

액셀러레이터 지표에 직접 액세스

Each Accelerator hosts Prometheus metric reports as /metrics, which you can query from the local network. The following is a full list of metrics that you can access:

지표 설명
process_resident_memory_bytes 액셀러레이터에서 사용한 메모리 양입니다.
uta_agent_sys_cpu_percent 시스템에서 사용한 CPU 양입니다.
uta_agent_sys_mem_bytes_used 시스템에서 사용한 메모리 양입니다.
uta_agent_protobuf_connects Unity 에디터가 에셋 임포트 파이프라인용 서비스에 연결한 횟수입니다.
uta_agent_protobuf_bytes_in 에셋 임포트 파이프라인에서 수신한 바이트 수입니다.
uta_agent_protobuf_bytes_out 에셋 임포트 파이프라인에 전송한 바이트 수입니다.
uta_agent_protobuf_requests{code="0",method="get"} 에셋 임포트 파이프라인에 전송한 항목 수입니다.
uta_agent_protobuf_requests{code="1",method="get"} 에셋 임포트 파이프라인에 전송한 항목에서 발생한 오류 수입니다.
uta_agent_protobuf_requests{code="2",method="get"} 에셋 임포트 파이프라인에 전송한 항목에서 발생한 네임스페이스 오류 수입니다.
uta_agent_protobuf_requests{code="3",method="get"} 캐싱되지 않은 항목에 대해 에셋 임포트 파이프라인에서 요청한 횟수입니다.
uta_agent_protobuf_requests{code="0",method="put"} 에셋 임포트 파이프라인에서 수신한 항목 수입니다.
uta_agent_protobuf_requests{code="1",method="put"} 에셋 임포트 파이프라인에서 수신한 항목에서 발생한 오류 수입니다.
uta_agent_protobuf_requests{code="2",method="put"} 에셋 임포트 파이프라인에서 수신한 항목에서 발생한 네임스페이스 오류 수입니다.
uta_agent_protobuf_requests{code="0",method="delete"} 항목을 제거하기 위해 에셋 임포트 파이프라인에서 요청한 횟수입니다.
uta_agent_protobuf_requests{code="1",method="delete"} 에셋 임포트 파이프라인에서 항목 제거 중에 발생한 오류 수입니다.
uta_agent_protobuf_requests{code="2",method="delete"} 에셋 임포트 파이프라인에서 항목 제거 요청 중에 발생한 네임스페이스 오류 수입니다.
uta_agent_protobuf_requests{code="3",method="delete"} 캐싱되지 않은 항목에 대해 에셋 임포트 파이프라인에서 항목 제거를 요청한 횟수입니다.
uta_agent_cache_bytes_evicted_unscheduled “예약되지 않은” 패스 동안 캐시에서 퇴출된 바이트 수입니다. 요청을 처리하는 동안 디스크 공간이 부족하면 예약되지 않은 퇴출이 발생합니다. 일반적으로 예약되지 않은 백그라운드 퇴출은 수요를 따라잡아야 하므로, 이 지표 값의 증가는 서버 과부하를 의미합니다. 설정의 CacheMinFreeBytes 또는 CacheMinFreePercent를 높이면 여유 공간 버퍼를 더 많이 확보하는 데 도움이 됩니다. 또는 기본 하드웨어를 업그레이드하거나 추가 액셀러레이터를 설치해야 할 수 있습니다.
uta_agent_cache_files_evicted_unscheduled 위의 uta_agent_cache_bytes_evicted_unscheduled 지표와 유사하지만, 바이트 수가 아니라 퇴출된 파일 수를 집계합니다. 이는 경고하기 더 쉬운 지표일 수 있습니다. 예를 들어 파일 지표가 초당 1 이상 증가할 때 경고할 수 있습니다.
uta_agent_protobuf_cache_hits 캐시에서 제공된 에셋 임포트 파이프라인 요청의 수입니다.
uta_agent_protobuf_cache_misses 캐시에서 제공하지 않은 에셋 임포트 파이프라인 요청의 수입니다.
uta_agent_protobuf_cache_bytes_out 캐시에서 에셋 임포트 파이프라인으로 제공된 바이트 수입니다.
uta_agent_protobuf_cache_bytes_in 에셋 임포트 파이프라인에서 수신된 캐시에 저장된 바이트 수입니다.

Unity 에디터 로그 디버깅

The Unity Editor logs are useful for viewing debugging information.

The block below shows an example log output for the Accelerator using Asset Import Pipeline v2.

2019-10-07T11:34:51-0700 Using Asset Import Pipeline V2.
  ...
  2019-08-08T09:04:03-0700 Start importing Assets/Scenes/tame-the-unicorn.png guid(07a0d449dcaef4d2ba104e9d9b350de6)
  2019-08-08T09:04:05-0700 Done importing asset: 'Assets/Scenes/tame-the-unicorn.png' (target hash: 'd5fddd470dd9beedcd7261b6455e436a') in 1.082988 seconds
  2019-08-08T09:04:05-0700 RemoteAssetCache::AddArtifactToCacheServer - artifactKey='Guid(07a0d449dcaef4d2ba104e9d9b350de6) Importer(-1,)' Target hash='d5fddd470dd9beedcd7261b6455e436a'

Querying for cacheable assets in Cache Server:
    86ac778e1a44c9143864797ddacf8cc9:Assets/New Material.mat
RemoteAssetCache - Download - Metadata - success:true, namespace:81e94844d19a16919208533e08183531, key:8d71d5006046bb9d5e4a7172eec3f3b2
RemoteAssetCache - Download - Artifact - success:true, namespace:78b2fdc254b0a4f8a4693a81bb96598a, key:de1eef03efd25a722d1500658bf19038 for asset:'Assets/New Material.mat', time elapsed: 0.005171 seconds
RemoteAssetCache - Download - Artifact - success:true, namespace:78b2fdc254b0a4f8a4693a81bb96598a, key:b19c9d64967a9691abecdb66364ae392 for extension:'Assets/New Material.mat.info', time elapsed: 0.004721 seconds

액셀러레이터 서비스 중지 및 재시작

액셀러레이터는 각 플랫폼에서 백그라운드 프로세스로 실행됩니다.

Windows

설정 메뉴에서 “서비스”로 검색하거나 Run 다이얼로그(WIN + R)에서 “services.msc”을 실행하여 Services Panel을 열고, 결과 리스트에서 “Unity 액셀러레이터” 서비스를 찾으십시오. 왼쪽 패널에 Stop the service 또는 Restart the service 옵션이 표시됩니다.

Mac OS X

터미널에서 launchctl 커맨드를 실행하여 LaunchControl 유틸리티에서 “com.unity.accelerator” 서비스를 제어할 수 있습니다. 자세한 내용은 https://www.launchd.info/를 참조하십시오.

Linux

service 콘솔 유틸리티를 사용하여 “unity-accelerator” 서비스를 제어할 수 있습니다. 자세한 내용은 http://manpages.ubuntu.com/manpages/bionic/man8/service.8.html을 참조하십시오.

유지관리

액셀러레이터 서비스는 유지관리 기간 동안 자동으로 업데이트됩니다. 현재 유지관리 시간은 액셀러레이터를 실행하는 컴퓨터에 따라 01:00–02:00 AM(로컬 시간)으로 설정되었습니다. 유지관리는 액셀러레이터가 새 버전을 발견했을 때에만 진행됩니다.

액셀러레이터의 설치 및 제거 로그는 운영체제의 표준 임시 디렉토리에 unity-accelerator-*install.log로 저장됩니다. 액셀러레이터의 로그는 스토리지 디렉토리에 unity-accelerator.log로 저장됩니다.

커맨드 라인 툴

액셀러레이터에는 문제 해결 및 설정을 수행하고, 일반적으로 하나 이상의 액셀러레이터를 활용하는 데 사용할 수 있는 방대한 커맨드 라인 툴이 포함되어 있습니다. 간편한 사용을 위해 unity-accelerator 실행 파일의 위치를 PATH에 추가하는 것이 좋습니다. 실행 파일은 설치 프로그램을 실행할 때 선택한 경로(예: C:\Program Files\Unity\accelerator)에 설치되었습니다.

CLI 툴에는 광범위한 도움말 시스템이 있습니다. 다음과 같이 인자 없이 unity-accelerator를 실행하여 시작할 수 있습니다.

$ unity-accelerator
Unity Accelerator v1.0.524+g96c5e18

Run on a local network to speed up transactions with Unity Services.

.....

unity-accelerator --all-help를 실행하여 모든 커맨드에 대한 모든 도움말 텍스트를 한 번에 출력할 수도 있습니다. 출력을 less를 통해 전달하거나 읽을 텍스트 파일로 리디렉션하는 것이 가장 좋습니다.

예를 들어 특정 액셀러레이터에서 작업할 때 이를 재설정하려는 경우 작업 디렉토리를 unity-accelerator.cfg 파일이 있는 곳과 동일한 위치로 변경하는 것이 좋습니다. 또한 해당 디렉토리에 대해 UNITY_ACCELERATOR_PERSIST 환경 변수를 설정하거나, 항상 --persist <dir> 옵션을 사용하도록 기억할 수 있지만, 대부분의 경우 작업 디렉토리를 변경하는 것이 가장 쉽습니다.

사용되는 다소 일반적인 CLI 툴 세트는 대시보드 툴입니다.

$ unity-accelerator dashboard password newaccount
Password: ****
   Again: ****
$ unity-accelerator dashboard list
admin
newaccount
$ unity-accelerator dashboard url
http://172.18.37.249:8080/dashboard/

최종 툴인 dashboard url은 빌트인 대시보드를 방문하기 위해 브라우저에 입력할 url을 찾을 때 유용합니다.

여러 액셀러레이터 미러링

원하는 경우 동일한 캐싱 데이터를 미러링하도록 여러 액셀러레이터를 설정할 수 있습니다. 고가용성을 위해 동일한 네트워크에서 두 개의 미러링된 액셀러레이터를 실행할 수 있습니다. 하나에서 충돌 또는 하드웨어 오류가 발생하거나, 어떤 이유로든 점검이 필요한 경우 다른 액셀러레이터가 이를 상쇄할 수 있습니다. 또한 서로 멀리 떨어져 있는 캐시 서버를 미러링할 수도 있습니다. 예를 들어 본사는 데이터를 지점으로 미러링하여 지점에서 사용할 캐싱 데이터의 복사본을 제공할 수 있습니다.

현재 미러링 기능은 밖으로 나가는 데이터 기능(“푸시” 또는 “포워딩”)만 제공합니다. 여러 개의 액셀러레이터로 푸시/포워드하거나, 서로 체이닝할 수 있습니다. 즉 A는 B로 전송되고, B는 C로 전송되고, C는 다시 A로 전송되도록 설정할 수 있습니다. 순환 체인에 대해서는 걱정할 필요가 없습니다. 항목에는 타임 스탬프가 찍혀 있으므로, 수신하는 액셀러레이터는 들어오는 항목이 현재 보유 중인 항목보다 오래된 경우 해당 항목을 무시합니다.

ip:port가 액셀러레이터 A는 1.1.1.1:1111이고 액셀러레이터 B는 2.2.2.2:2222인 예제를 살펴보겠습니다. 둘 다 처음에는 데이터가 없다고 가정하고 항목을 A에 넣습니다. 이때 B에는 항목이 없습니다.

$ echo test1 | unity-accelerator cache put 1.1.1.1:1111 namespace1 key1
$ unity-accelerator cache get 1.1.1.1:1111 namespace1 key1
test1
$ unity-accelerator cache get 2.2.2.2:2222 namespace1 key1
key not found

이제 A가 B로 포워드하도록 설정해보겠습니다. 이를 위해 A의 설정을 변경해야 하므로, 액셀러레이터 A를 실행하는 컴퓨터에 로그인하고, 액셀러레이터를 종료하겠습니다.

# Shutdown Accelerator A
$ cd <directory where unity-accelerator.cfg is>
$ unity-accelerator config set ProtobufForwardPuts protobuf:2.2.2.2:2222
# Start Accelerator A back up

이제 다른 항목을 A의 캐시에 넣으면 B로 포워드되는 것을 볼 수 있습니다.

$ echo test2 | unity-accelerator cache put 1.1.1.1:1111 namespace2 key2
$ unity-accelerator cache get 1.1.1.1:1111 namespace2 key2
test2
$ unity-accelerator cache get 2.2.2.2:2222 namespace2 key2
key not found
# It will take up to a minute before the forwarding occurs, due to how the algorithm works with batching, etc. But within a minute or two you should see...
$ unity-accelerator cache get 2.2.2.2:2222 namespace2 key2
test2

하지만 여기에는 새 데이터만 포함되며(액셀러레이터 A에 들어온 새 항목은 액셀러레이터 B로 포워드됨) 기존 데이터는 포함하지 않습니다. 이 예에서 첫 번째 항목은 여전히 액셀러레이터 B에 없습니다.

$ unity-accelerator cache get 2.2.2.2:2222 namespace1 key1
key not found

이 사례를 설명하기 위해, 그리고 모든 데이터를 한 번에 포워드하려는 경우(한 액셀러레이터에서 새로운 액셀러레이터로 전환할 때 유용함) “푸시” 커맨드 라인 툴을 사용할 수 있습니다.

$ unity-accelerator cache push 1.1.1.1:1111 2.2.2.2:2222
{"msg":"push completed", "destination":"2.2.2.2:2222", "namespaces":2, "keys":2, "bytes":12, "supercededs":1, "errors":0, "elapsed":"44.054078ms"}
$ unity-accelerator cache get 2.2.2.2:2222 namespace1 key1
test1

푸시 툴은 첫 번째 액셀러레이터에 요청을 보내고 모든 데이터를 두 번째 액셀러레이터에 보내도록 요청합니다. 작업이 완료되면 첫 번째 액셀러레이터는 수행한 작업에 대한 세부 정보와 함께 “푸시 완료” 응답을 다시 보냅니다.

unity-accelerator config help | less를 실행하고 포워드를 검색하여 검색을 수행할 수 있는 추가 고급 설정 옵션이 있습니다. 이를 통해 포워드 동시성, 대기열 크기, 오류 처리 등을 지정할 수 있습니다.

미러링된 각 액셀러레이터의 MaintenanceStart 및 MaintenanceDuration 설정 값을 변경하여 점검을 위해 동시에 모두 종료되지 않도록 만들 수 있습니다.

문제 해결

액셀러레이터를 설치했지만 일부 Unity 에디터가 사용하지 못한다면 여러 가지 원인이 있을 수 있습니다. 다음 문제 해결 옵션을 사용하여 문제를 해결해 보십시오.

사용 중인 Unity 에디터 버전 확인

각 프로젝트 기여자는 액셀러레이터를 사용하기 위해 에디터 버전 2019.3 이상을 보유해야 합니다.

사용자가 액셀러레이터의 로컬 네트워크에 있는지 확인

액셀러레이터가 문제를 겪는 프로젝트 기여자와 동일한 근거리 통신망(LAN)에서 실행 중인지 확인하십시오. 액셀러레이터는 원격으로 작업하는 기여자에게는 영향을 주지 않습니다.

액셀러레이터의 연결 테스트

Check if the machine experiencing issues can reach the Accelerator.

Enter the Accelerator’s host IP address into the following URL path to display its health page:

[AcceleratorIP]:[AcceleratorPort]/api/agent-health

테스트가 실패하면 모든 호스트 및 네트워크 방화벽이 액셀러레이터의 수신 IP 주소 및 포트(TCP)에 대한 액세스를 허용하는지 확인하십시오. 네트워크 관리자와 협력하여 이 포트에 대한 액세스를 허용해야 할 수 있습니다.

액셀러레이터 버전 확인

Linux 시스템에 액셀러레이터를 설치하는 경우 모든 Linux 실행 파일에는 악성 엔티티가 다운로드된 액셀러레이터 버전을 변조하지 않았는지 확인할 수 있는 서명 파일이 있습니다. 서명 파일은 신뢰할 수 있는 버전의 GnuPG를 사용하여 확인할 수 있습니다. 아래의 키는 현재 릴리스를 서명합니다. 키가 포함된 공용 키 블록은 https://collab-accelerator.cloud.unity3d.com/에서 이용할 수 있습니다.

pub     rsa4096 2019-12-02
Key fingerprint = 9BC4 B04D F2E8 74E5 64AA 47E7 6D44 3B8B 002C F61F
uid       Unity Technologies ApS (Accelerator signing key) <sst-ops@unity3d.com>

키를 GPG 스토어에 다운로드하려면 다음 커맨드 중 하나를 사용하십시오.

$ gpg --keyserver https://collab-accelerator.cloud.unity3d.com/ --search-key "sst-ops@unity3d.com"

$ gpg --keyserver https://collab-accelerator.cloud.unity3d.com/ --recv-key 9BC4B04DF2E874E564AA47E76D443B8B002CF62F

설치한 액셀러레이터 버전이 원본이고 수정되지 않았음을 확인하려면 파일의 서명을 확인하십시오.

액셀러레이터 설치 파일에는 https://storage.googleapis.com/unity-accelerator-prd/unity-accelerator-installer.sig에서 이용할 수 있는 서명 파일이 포함되어 있습니다. 이 서명 파일을 사용하여 액셀러레이터 설치 프로그램을 확인하십시오.

$ gpg --verify unity-accelerator-installer.sig unity-accelerator-linux-x64-installer.run

키를 신뢰하기 전에 위조되거나 신뢰할 수 없는 키에 표시된 지문을 비교하십시오. 키를 신뢰하고 나면 다음이 표시됩니다.

gpg: Signature made Thu Jan 16 12:29:14 2020 PST
gpg:                using RSA key 9BC4B04DF2E874E564AA47E76D443B8B002CF61F
gpg: Good signature from "Unity Technologies ApS (Accelerator signing key) <sst-ops@unity3d.com>" [ultimate]

이는 서명이 유효하고 이 키를 신뢰했음을 의미합니다.

잘못된 키

올바른 배포 키가 없는 경우 위 커맨드의 출력은 다음과 같은 모습입니다.

gpg: Signature made Thu Jan 16 12:29:14 2020 PST
gpg:                using RSA key 9BC4B04DF2E874E564AA47E76D443B8B002CF61F
gpg: Can't check signature: No public key

이 경우 위의 지침에 따라 키를 받아야 합니다.

위조되거나 신뢰할 수 없는 키

유효한 서명이 있는 키의 복사본이 있지만, 키가 신뢰할 수 있음으로 표시되지 않았거나 키가 위조된 경우 출력은 다음과 같은 모습입니다.

gpg: Signature made Thu Jan 16 12:29:14 2020 PST
gpg:                using RSA key 9BC4B04DF2E874E564AA47E76D443B8B002CF61F
gpg: Good signature from "Unity Technologies ApS (Accelerator signing key) <sst-ops@unity3d.com>" [unknown]
gpg: WARNING: This key is not certified with a trusted signature!
gpg:          There is no indication that the signature belongs to the owner.
Primary key fingerprint: 9BC4 B04D F2E8 74E5 64AA  47E7 6D44 3B8B 002C F61F

키가 위조된 경우 서명 파일을 사용하여 지문을 확인해야 합니다. 키가 신뢰할 수 있음으로 표시되지 않은 경우 키를 편집하여 신뢰할 수 있음으로 표시하십시오. 자세한 내용은 https://www.gnupg.org/gph/en/manual/x334.html을 참조하십시오.

지원

에셋 임포트 파이프라인에서 액셀러레이터를 사용하기 위한 도움이 필요하면 액셀러레이터 포럼을 방문해 보십시오.

UDP 문제 해결
XR
Copyright © 2023 Unity Technologies
优美缔软件(上海)有限公司 版权所有
"Unity"、Unity 徽标及其他 Unity 商标是 Unity Technologies 或其附属机构在美国及其他地区的商标或注册商标。其他名称或品牌是其各自所有者的商标。
公安部备案号:
31010902002961