外部マシンでのフレームサーバーの使用

でもNuke Studioフレームを内部でレンダリングできるので、外部マシンでFrame Serverを実行すると、マシンのネットワーク全体で作業を共有することでプロセスを大幅に加速できます。

注意:  フレームサーバーにはNuke Studioメインワークステーション上のライセンス(nukestudio_i)、ただし、 Nukeスレーブマシンでライセンス(nuke_r)をレンダリングします。ローカルフレームサーバープロセスはポート5558-5662を使用します。

スレーブマシンでインタラクティブライセンス(nuke_i)を使用する場合は、 --useInteractiveLicenseへの議論runframeserver.py以下に説明するコマンド。

外部マシンでのフレームサーバーの構成

Nuke StudioのFrame Serverを外部マシン(または複数のマシン)にセットアップして、 Nuke Studioセッション。これを行うには、実行する必要がありますrunframeserver.py Pythonサイトパッケージ内にある特定のコマンドライン引数を持つ外部マシン上のスクリプト。

警告:  すべてがスムーズに機能するためには、外部スレーブマシンとメインマシンの両方を確保する必要がありますNuke Studioセッションは、NFS共有などの共有場所に対してファイルを読み書きできます。

プラットフォームに応じて、デフォルトを操作してこれを行うことができますumaskただし、これにより作成されたファイルの権限が変更されることに注意してください。

さらに、ファイアウォールが通信ポート5560をブロックしている場合、MacおよびRHELなどの特定のLinuxディストリビューションはメインワークステーションとして機能できません。特定のポートがファイアウォールを通過できるようにファイアウォールを設定するには、 iptablesコマンドを実行しますが、その際は注意してください。例えば:

sudo iptables -I INPUT -p tcp --dport 5560 --syn -j ACCEPT

詳細については、特定のプラットフォームのファイアウォールに関するドキュメントを参照してください。

Frame Serverは、外部マシン上の多数のワーカープロセスを使用します。各ワーカープロセスには、スレッド、メモリなどの割り当てられたリソースが必要です。に渡す必要のある引数がいくつかあります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

例では、スレーブが2つを使用することを指定しますNukeそれぞれ4つのスレッドと8 GBのRAMを備え、メインのスレーブになっているワーカーNuke Studio実行中のワークステーションbob

ヒント:  スレーブマシンがメインとは異なるOSを実行している場合Nuke Studioマシン、あなたは使用することができます--remapそれらの間でファイルパスを変換するコマンドライン引数。ホストファイルパスが最初に読み取られ、続いてスレーブファイルパスが読み取られます。Nuke Studio使用するすべてのファイルパスを期待する/ (スラッシュ)ディレクトリ間。例えば:
--remap "P:/、/ mnt / renders /"
次で始まるホストパスを変換しますP:/Windowsスタイル)で始まるスレーブパスへ/mnt/renders/ (Linuxスタイル)。

メインワークステーションのスクリプトエディタで次の行を実行すると、Frame Serverとワーカーが接続されていることを確認できます。

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セッション。

注意:  ワーカーがフレームサーバーに接続できない場合、スクリプトエディターの出力パネルに例外が出力されます。

フレームサーバーログ

ブローカーとワーカーのログは、Frame Serverの問題の診断に役立ちます。ログはデフォルトでNUKE_TEMP_DIR / logsに書き込まれ、次の形式を取ります。

broker.log

worker-0.log

worker-1.log

worker-2.log

注意:  上記のようにPythonを使用してフレームサーバーを実行すると、常にログファイルが特定のOS一時ディレクトリに書き込まれます。たとえば、WindowsC:\ tempが使用されます。

ヒント:  FRAMESERVER_LOG_DIR環境変数を使用して、Frame Serverのログを別の場所に強制することができます。見る環境変数詳細については。