외부 시스템에서 프레임 서버 사용

이기는 하지만 Nuke Studio 외부 시스템에서 프레임 서버를 실행하면 시스템 네트워크에서 작업을 공유하여 프로세스를 상당히 가속화 할 수 있습니다.

노트 :  프레임 서버는 Nuke Studio 기본 워크 스테이션에서 라이센스 (nukestudio_i) Nuke 슬레이브 시스템에서 라이센스 (nuke_r)를 렌더링합니다. 로컬 프레임 서버 프로세스는 포트 5558-5662를 사용합니다.

슬레이브 시스템에서 대화식 라이센스 (nuke_i)를 사용하려면 --useInteractiveLicense 에 대한 논쟁 runframeserver.py 아래에 설명 된 명령.

외부 시스템에서 프레임 서버 구성

Nuke Studio의 프레임 서버는 외부 머신 (또는 여러 머신)에 설정하여 Nuke Studio 세션. 이렇게하려면 다음을 실행해야합니다. runframeserver.py 외부 사이트의 스크립트 (파이썬 사이트 패키지 안에 있으며 특정 명령 행 인수 포함).

경고:  모든 것이 원활하게 작동하려면 외부 슬레이브 시스템과 메인 시스템이 모두 Nuke Studio 세션은 NFS 공유와 같은 공유 위치에서 파일을 읽고 쓸 수 있습니다.

플랫폼에 따라 기본값을 조작하여 수행 할 수 있습니다 umask 이 설정은 생성 된 파일의 권한을 변경합니다.

또한 방화벽이 통신 포트 5560을 차단하면 Mac 및 RHEL과 같은 특정 Linux 배포판이 기본 워크 스테이션으로 작동 할 수 없습니다. 방화벽을 사용하여 방화벽을 통해 특정 포트를 허용하도록 방화벽을 구성 할 수 있습니다. iptables 명령을 수행 할 때주의하십시오. 예를 들면 다음과 같습니다.

sudo iptables -I 입력 -p tcp --dport 5560 --syn -j ACCEPT

자세한 내용은 특정 플랫폼의 방화벽 설명서를 참조하십시오.

프레임 서버는 외부 시스템에서 여러 작업자 프로세스를 사용하며, 각 작업자 프로세스에는 스레드, 메모리 등과 같은 할당 된 리소스가 필요합니다. 전달해야 할 여러 가지 주장이 있습니다 runframeserver.py 서버가 올바르게 작동하려면

--numworkers -이것은 동시 수입니다 Nuke 이 서버 렌더 노드를 실행할 때 실행되는 프로세스.

--nukeworkerthreads -각 작업자가 할당 된 스레드 수이것은 -m 실행할 때 인수 Nuke 명령 행에서.

--nukeworkermemory -각 프레임 서버 워커에 할당 된 메모리 양 (MB).

--workerconnecturl -제공하려는 기본 워크 스테이션의 TCP 포트 주소. 예를 들면 다음과 같습니다.

tcp://bob:5560

어디 bob 제공하려는 머신의 확인 된 호스트 이름입니다. IP 주소를 사용할 수도 있습니다.

팁:  유효한 URL을 입력하려면 ping 응답이 있는지 확인하십시오.

--nukepath -경로 Nuke 슬레이브 워크 스테이션의 응용 프로그램.

팁:  의 위에 Windows파일 경로에 공백이 있으면 경로를 따옴표로 묶어야합니다.
예를 들어 --nukepath="C:\Program Files\Nuke12.1v1\Nuke12.1.exe"

Linux 슬레이브 시스템에서 설치 디렉토리에서 실행되는 예제 명령 프롬프트 항목은 다음과 같습니다.

./python ./pythonextensions/site-packages/foundry/frameserver/nuke/runframeserver.py --numworkers=2 --nukeworkerthreads=4 --nukeworkermemory=8096 --workerconnecturl=tcp://bob:5560 --nukepath=./Nuke12.1

Windows슬레이브 시스템의 경우 설치 디렉토리에서 실행되는 명령 프롬프트 항목 예는 다음과 같습니다.

python.exe pythonextensions\site-packages\foundry\frameserver\nuke\runframeserver.py --numworkers=2 --nukeworkerthreads=4 --nukeworkermemory=8096 --workerconnecturl=tcp://bob:5560 --nukepath=Nuke12.1.exe

이 예에서는 슬레이브가 두 개를 사용하도록 지정합니다. Nuke 작업자는 각각 4 개의 스레드와 8GB RAM을 가지며 메인에 종속됩니다. Nuke Studio 에서 실행되는 워크 스테이션 bob.

팁:  슬레이브 시스템이 메인 시스템과 다른 OS를 실행하는 경우 Nuke Studio 기계, 당신은 사용할 수 있습니다 --remap 그들 사이의 파일 경로를 변환하는 명령 행 인수. 호스트 파일 경로를 먼저 읽은 다음 슬레이브 파일 경로를 읽습니다. Nuke Studio 모든 파일 경로를 사용할 것으로 예상 / 디렉토리 간 슬래시예를 들면 다음과 같습니다.
- "P : /, / mnt / renders /"를 다시 매핑
로 시작되는 호스트 경로를 변환합니다 P:/ (Windows 스타일)로 시작하는 슬레이브 경로 /mnt/renders/ (리눅스 스타일).

기본 워크 스테이션의 스크립트 편집기에서 다음 행을 실행하여 프레임 서버와 작업자가 연결되어 있는지 확인할 수 있습니다.

from hiero.ui.nuke_bridge.FnNsFrameServer import frameServer

print [worker.address for worker in frameServer.getStatus(1).workerStatus]

연결에 성공하면 출력 패널에 다음과 유사한 내용이보고되어야합니다.

['Worker 0 - henry.local - 192.168.1.11', 'Worker 0 - bob.local - 192.168.1.111', 'Worker 1 - henry.local - 192.168.1.11']

어디 henry.local 원격 슬레이브의 이름이며 bob.local 메인의 이름입니다 Nuke Studio 세션.

노트 :  작업자가 프레임 서버에 접속할 수없는 경우 스크립트 편집기의 출력 패널에 예외가 인쇄됩니다.

프레임 서버 로그

브로커 및 작업자 로깅은 프레임 서버 문제를 진단하는 데 도움이 될 수 있습니다. 로그는 기본적으로 NUKE_TEMP_DIR / logs에 작성되며 다음 형식을 취합니다.

broker.log

worker-0.log

worker-1.log

worker-2.log

노트 :  위에서 설명한대로 Python을 사용하여 프레임 서버를 실행하면 항상 특정 OS 임시 디렉토리에 로그 파일을 씁니다. 예를 들어WindowsC : \ temp가 사용됩니다.

팁:  FRAMESERVER_LOG_DIR 환경 변수를 사용하여 프레임 서버 로그를 다른 위치로 강제 설정할 수 있습니다. 보다 환경 변수 자세한 내용은.