在外部计算机上使用Frame Server

虽然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和某些Linux发行版(例如RHEL)不能用作主工作站。您可以使用以下命令将防火墙配置为允许某些端口通过防火墙。 iptables命令,但在执行此操作时要格外小心。例如:

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

有关更多信息,请参考您特定平台的防火墙文档。

帧服务器在外部计算机上使用许多工作进程,每个工作进程都需要分配的资源,例如线程,内存等。您必须传递许多参数runframeserver.py为使服务器正常工作:

--numworkers -这是并发数Nuke运行此服务器渲染节点时启动的进程。

--nukeworkerthreads -每个工作线程分配的线程数。这类似于设置-m运行时的参数Nuke从命令行。

--nukeworkermemory -分配给每个帧服务器工作程序的内存量(以MB为单位)。

--workerconnecturl -您要服务的主工作站的TCP端口地址。例如:

tcp://bob:5560

哪里bob是您要提供服务的计算机的已解析主机名。您也可以使用IP地址。

小费:  为确保您输入的是有效的网址,请尝试使用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工作线程,每个线程有四个线程,每个线程有8 GB RAM Nuke Studio工作站在bob

小费:  如果您的从属计算机运行的操作系统与主计算机运行的操作系统不同Nuke Studio机器,您可以使用--remap命令行参数在它们之间转换文件路径。首先读取主机文件路径,然后读取从文件路径。Nuke Studio希望使用所有文件路径/ (在目录之间)(正斜杠)。例如:
--remap“ P:/,/ mnt / renders /”
转换以开头的主机路径P:/Windows样式)到以/mnt/renders/ (Linux风格)。

您可以通过在主工作站上的脚本编辑器中运行以下行来检查框架服务器和辅助服务器是否已连接:

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,则在脚本编辑器的输出面板中打印一个例外。

框架服务器日志

Broker和Worker日志记录可以帮助诊断Frame Server问题。默认情况下,日志写入NUKE_TEMP_DIR / logs,格式为:

broker.log

worker-0.log

worker-1.log

worker-2.log

注意:  如上所述,使用Python运行Frame Server总是将日志文件写入特定的OS临时目录。例如,在Windows使用C:\ temp。

小费:  您可以使用FRAMESERVER_LOG_DIR环境变量来强制Frame Server登录到其他位置。看到环境变量了解更多信息。