【云服务器GPU】Blender高性能渲染 GPUGEEK RTX4090 A5000显卡
一、云端环境创建与检查
1.直接使用别人的镜像不测试会有大问题
先对环境进行测试
# 检查dpkg状态
sudo apt update
仔细观察 apt update 命令的输出。不应该再看到之前那样大量的 dpkg: warning: files list file for package '…' missing; 警告。 如果偶尔有一两条可能还好,但如果还是很多,那说明这个官方镜像可能也有问题。
安装一个小工具测试
sudo apt install nano
或者任何你熟悉的小命令行工具。观察安装过程是否顺利,是否有 dpkg 相关的错误或警告。
检查 NVIDIA 驱动和 CUDA
nvidia-smi
这个命令应该能正确显示你的 RTX A5000 GPU 信息以及驱动版本和 CUDA 版本。确保显示的 CUDA 版本与镜像名称中的 (例如 12.1) 大致匹配或兼容。
2.安装blend程序与环境
- 确认云实例支持 GPU(运行
nvidia-smi检查 NVIDIA 驱动和 CUDA 版本)。 - 若需特定版本(如 4.3.2),手动安装:(注意版本一定要对齐4.3.4,不然会报警告)
# 0. (可选) 如果已经通过 apt 安装过 Blender,先移除
# sudo apt remove blender
# 1. 下载 Blender 安装包 (假设你当前在用户主目录 ~)
# 如果之前已经通过 FinalShell 上传了,可以跳过此步
# 确保在用户主目录或一个你知道的临时目录
cd ~
# 如果没有上传,可以使用 wget 下载:
wget https://download.blender.org/release/Blender4.3/blender-4.3.2-linux-x64.tar.xz
# 2. 创建 Blender 的安装目录
sudo mkdir -p /opt/blender
# 3. 解压 Blender 到指定目录
# 注意:这里假设 blender-4.3.2-linux-x64.tar.xz 在你当前目录下 (例如 ~)
sudo tar -xvf blender-4.3.2-linux-x64.tar.xz -C /opt/blender/
# 解压后,Blender 的程序文件会在 /opt/blender/blender-4.3.2-linux-x64/ 目录下
# 4. 创建软链接,方便直接运行 Blender 命令
sudo ln -s /opt/blender/blender-4.3.2-linux-x64/blender /usr/local/bin/blender
# 安装必要的库
## 安装第一批基础依赖 (这些是常见的图形和界面库)
sudo apt-get update
sudo apt install -y libgl1 libxi6 libxrender1 libfontconfig1 libxfixes3 libxcursor1 libxinerama1 libxrandr2
## 安装之前发现 Blender 缺少的特定库
sudo apt install -y libxxf86vm1
sudo apt install libxkbcommon0
# 5. 验证安装
blender --version
正确安装应该显示:

3. 安装 FFmpeg(用于合成视频)
# 更新源是必要的
sudo apt-get update
sudo apt install ffmpeg
二、blender文件配置与上传
1.在 Blender 中执行 Pack All into .blend
把贴图,材质,纹理都打包在blend文件中,上传文件只上传这个blend文件
操作流程
- 打开您的 .blend 文件。
- 点击顶部菜单 File。
- 选择 External Data。
- 点击 Pack All into .blend。
- 保存文件(File > Save 或 Save As)。
![image.png|800]()
2.上传文件
- 确认本地的blender版本和安装的版本一致。
- 上传至/gz-fs文件夹,上传方法:[[gz-cli GPUGEEK命令行工具]]
- 上传和下载的数据,共享的都存在在
gz-fs
![image.png|800|800]()
3. 配置输出目录
- 创建输出目录:
mkdir -p /gz-fs/output
三、开始渲染
nohup … &: 这会将整个渲染命令放到后台运行,即使您关闭SSH连接,渲染也不会中断。渲染的日志输出会默认保存到当前目录下的nohup.out文件中- 输出为帧序列:每帧一张图片(如
frame_0001.png、frame_0002.png),不是视频。
1. 定制渲染命令
需要考虑以下内容:(帧率和渲染指令关系不大,最后帧率是合成ffmpeg决定的)
- Blender 文件路径: /gz-fs/fangjian.blend
- 输出路径: /gz-fs/output/
- 分辨率: 1920x1080
- 采样数: 256
- 帧范围: 1-100
- 帧率: 30
- 输出格式: PNG
- 降噪: CUDA
- 自适应采样: 否
- 光线反弹次数: 6
- 瓦片大小: 2048
- 渲染设备: CUDA
- 帧步长: 1
- 最大渲染时间: 0
- blender版本 4.3.2
- 显卡RTXA5000
1.基础渲染指令
需要修改的参数:
1.第几帧到第几帧2.输入输出地址 3.采样数 4.瓦片数
blender -b /gz-fs/fangjian.blend -o /gz-fs/output/ -x 1 -F PNG -s 1 -e 100 -a -- --cycles-device CUDA --cycles-max-samples 128 --cycles-bounces 6 --cycles-tile-size 2048 --cycles-adaptive-sampling 0 -t 0
没有明确指定分辨率,Blender 默认通常是 1920x1080
[[nohup关闭ssh保持运行,链接继续输出]]
2. 断开ssh的后台运行方式
nohup blender -b /gz-fs/fangjian.blend -o /gz-fs/output/ -x 1 -F PNG -s 1 -e 100 -a -- --cycles-device CUDA --cycles-max-samples 128 --cycles-bounces 6 --cycles-tile-size 2048 --cycles-adaptive-sampling 0 -t 0 > render.log 2>&1 &
2. 给显卡上压力
1.加强渲染指令
大幅增加采样数 (--cycles-max-samples):128->1024
略微增加光线反弹次数 (--cycles-bounces):6->10
分辨率提高:1080p->2K (2560x1440),-xres 2560 -yres 1440更改为 --render-resolution-x 2560 --render-resolution-y 1440lender 命令行中设置渲染分辨率的正确参数是 --render-resolution-x 和 --render-resolution-y(长格式),或者简单的 -x 和 -y(短格式,但如上所述,-x 容易与覆盖参数冲突)
unknown argument, loading as file: --render-overwrite 错误表明 Blender 仍然将 --render-overwrite 视为一个文件路径,而不是一个命令行参数。这通常是由于参数的顺序或位置不符合 Blender 命令行解析器的预期。Blender 的命令行参数顺序有时比较严格。像 --render-overwrite 和 --render-resolution-x 这样的渲染选项,通常应该放在 -b(背景渲染)和 .blend 文件路径之后,但在 -o(输出路径)或 -a(渲染动画)之前,或者在所有核心渲染选项之后,但在引擎特定选项之前。
相比上面指令:
我将 -x 1更改为 --render-overwrite Blender 的命令行参数中,-x 这个短参数既可以表示"覆盖现有文件"(当后面跟数字时),也可以表示"渲染宽度"(当后面跟分辨率数值时)
分辨率在参数里设置不了,只能windows先改,Blender 的 .blend 文件包含了项目的所有信息,包括渲染设置。当您在 Windows 本地使用 Blender 打开 .blend 文件并修改分辨率,然后保存文件后,这些新的分辨率设置就永久地存储在了 .blend 文件内部
加强的指令:(分辨率自己去blender设置2560* 1440)
blender -b /gz-fs/fangjian.blend -o /gz-fs/output/ -x 1 -F PNG -s 1 -e 100 -a -- --cycles-device CUDA --cycles-max-samples 1024 --cycles-bounces 10 --cycles-tile-size 2048 --cycles-adaptive-sampling 0 -t 0
2.NVIDIA RTX A5000 显卡确定支持 OptiX——但是驱动可能不兼容
命令行里可以尝试将 --cycles-device CUDA 更改为 --cycles-device OPTIX。
经过测试:RTX A5000 硬件上支持 OptiX,但软件层面(Blender、驱动、OptiX SDK 之间的兼容性)可能存在一些障碍。
3.怎么看是否用上了optix
检查 Blender 控制台输出 (最直接) 这是最直接的确认方式。当您使用命令行运行 Blender 渲染时,它会在控制台打印出正在使用的渲染设备信息。
预期输出:您应该会看到类似以下的信息:
Fra:XXX Mem:XXXX.XXM (Peak XXXX.XXM) | Time:00:00.XX | Mem:XXXX.XXM, Peak:XXXX.XXM | Scene, ViewLayer | Initializing
Fra:XXX Mem:XXXX.XXM (Peak XXXX.XXM) | Time:00:00.XX | Mem:XXXX.XXM, Peak:XXXX.XXM | Scene, ViewLayer | Waiting for render to start
Info: OptiX device 'NVIDIA RTX A5000' selected.
或者在初始化阶段,可能会直接显示:
Info: Using OptiX device 'NVIDIA RTX A5000'.
只要看到明确提到 "OptiX device" 和您的 "NVIDIA RTX A5000" 的信息,就表明 Blender 已经成功识别并选择了 OptiX 作为渲染后端3。
3.命令参数意义说明
| 参数/符号 | 意义 |
|---|---|
blender |
调用 Blender 程序 |
-b |
后台模式运行,无界面 |
/gz-fs/fangjian.blend |
指定渲染的 .blend 文件路径 |
-o /gz-fs/output/ |
设置输出路径 |
-x 1 |
启用文件覆盖,允许覆盖已有输出文件 |
-F PNG |
设置输出格式为 PNG |
-s 1 |
设置起始帧为 1 |
-e 100 |
设置结束帧为 100 |
-a |
渲染整个动画 |
-- |
分隔符,后面为 Cycles 渲染引擎参数 |
--cycles-device CUDA |
指定使用 CUDA 设备渲染 |
--cycles-max-samples 128 |
设置最大采样数为 128 |
--cycles-bounces 6 |
设置光线最大反弹次数为 6 |
--cycles-tile-size 2048 |
设置渲染瓦片大小为 2048 |
--cycles-adaptive-sampling 0 |
禁用自适应采样 |
-t 0 |
设置线程数为 0(使用所有可用线程) |
- 若需自定义命名,可添加
-o //gz-fs/output/custom_name_##(## 表示帧序号)。
-r 30设置帧率,--cycles-denoising CUDA启用CUDA降噪。若.blend文件中帧率或降噪设置不兼容(如已禁用降噪),可能导致冲突或路径解析错误。检查文件设置。 冲突也可能是因为文件配置不兼容 帧率-r 30被误解析为文件路径/root/-r,因Blender命令行对-r处理异常。移除-r 30,改为在.blend文件内设置帧率,避免冲突。
指令中####是可选的占位符,用于自定义输出文件名。如果不指定,Blender 默认使用 .blend 文件名加帧编号。两种方式都可以,取决于是否需要自定义输出文件名。
4.其他可选参数
| 参数/符号 | 意义 |
|---|---|
-f |
指定输出格式(如 -f IMAGE) |
-t <threads> |
设置线程数(替代 -t 0) |
-j <jobs> |
并行渲染任务数 |
--cycles-samples <n> |
覆盖总采样数(替代 --cycles-max-samples) |
--cycles-denoising <type> |
指定降噪类型(如 CUDA、OptiX) |
--cycles-use-cpu |
启用 CPU 渲染(替代 CUDA) |
-E <engine> |
切换渲染引擎(如 CYCLES、BLENDER_EEVEE) |
-y |
强制覆盖现有文件 |
--debug |
启用调试模式 |
-o <path/prefix_##> |
修改输出文件名(如 -o /gz-fs/output/custom_##,## 表示帧序号) |
-o <path/prefix_##>参数可用于自定义输出文件名,例如-o /gz-fs/output/custom_##会生成custom_0001.png等。- 您的指令未修改,仍使用默认命名规则(
0001.png等)。
2.过程中验证GPU使用
- 渲染时再开一个窗口运行
nvidia-smi,确认 Blender 占用 GPU 显存。确认GPU确实使用 - 动态监控:
watch -n 1 nvidia-smi - [[watch -n 1 nvidia-smi 命令]]
- 或者使用
nvtop进行监控(需要先安装) - [[nvtop安装查看GPU内存使用]]
3. 合成视频
1.ffmpeg合成指令
- 使用 FFmpeg 将帧序列合成视频,需要修改参数:1.起始帧2.帧率3.总帧数4.输出位置5.画质
- blend渲染后,默认文件名格式为 0001.png,所以这里就不做更改了
ffmpeg -framerate 30 -start_number 100 -i /gz-fs/output/%04d.png -vframes 30 -c:v libx264 -crf 18 -pix_fmt yuv420p /gz-fs/output/output.mp4
- 说明:
-i /gz-fs/output/%04d.png按顺序读取帧图片,-c:v libx264编码为 MP4 视频。
2.参数意义
以下是补充完整后的参数表格,包含 -crf、b:v 和 -preset 的意义:
3.指令中的参数说明
| 参数/符号 | 意义 |
|---|---|
ffmpeg |
调用 FFmpeg 程序 |
-framerate 30 |
设置帧率为 30 帧每秒 |
-start_number 100 |
指定起始帧序号为 100 |
-i /gz-fs/output/%04d.png |
输入文件路径,使用 %04d 匹配 0100 格式帧文件 |
-vframes 30 |
限制总帧数为 30 |
-c:v libx264 |
指定视频编解码器为 H.264 (libx264) |
-crf <value> |
设置恒定质量因子,0-51(0 无损,18 高画质,23 默认,28 较低画质,51 最差) |
-pix_fmt yuv420p |
设置像素格式为 YUV420P |
/gz-fs/output.mp4 |
输出文件路径,生成 MP4 视频 |
4.其他参数
-b:v <bitrate> |
设置视频比特率(如 5M 表示 5Mbps) |
|---|---|
-preset <value> |
编码速度与质量平衡(ultrafast 到 veryslow,veryslow 质量最高但最慢) |
- 如果未指定 -preset 参数,FFmpeg 默认使用 medium 作为预设值,平衡编码速度和质量。
5.说明
-crf 18和-crf 28是示例值,当前指令使用默认值 23。-b:v 5M和-preset veryslow是可选参数,未在当前指令中启用,但可根据需求添加。
4.合成结束,下载预览
下载视频到本地预览即可
四、心跳程序,防止断开链接
[[保持云服务器不掉线脚本]]
4.1新开终端:在云服务器上打开一个新的 SSH 会话或终端窗口
运行脚本:
while true; do sleep 60; echo "Keep alive"; done
后台运行(上下二选一):若需释放终端,可添加 & 或使用 nohup:适合需要长期会话管理的场景
nohup while true; do sleep 60; echo "Keep alive"; done &
4.2还有一种可能,finalshell断开链接(好像开了智能加速会断,之前都不断)

开了心跳脚本的窗口保持活跃 没有断开 但是另一正在渲染的 断开了。
Finalshell 免费版可能对会话管理有限制,渲染任务无输出易超时,而心跳脚本每 60 秒输出保持活跃。
确实,更换了powershell智能加速就不会断开链接了
五、注意
错误1:不要关闭finalshell 不然看不见输出了
错误2:考虑装的镜像的显卡驱动和显卡是否不匹配,镜像是CUDA12.6 但3090显卡好像不是一个架构
注意3:哪些量是能加载在blend文件中,可以不用定义的?
| 参数名称 | 描述 |
|---|---|
| 帧率 (Frame Rate) | 控制动画播放速度,在"输出属性"中设置 |
| 分辨率 (Resolution) | 设置渲染图像的宽度和高度,在"输出属性"中调整 |
| 采样数 (Samples) | 影响渲染质量和速度,在"渲染属性"中配置 |
| 动画时长 (Length) | 通过起始帧和结束帧定义,在"时间线"或"输出属性"中 |
| 光线反弹次数 (Bounces) | 控制光线反弹次数,在"渲染属性"的"光路"中调整 |
| 瓦片大小 (Tile Size) | 优化渲染性能,在"渲染属性"的性能设置中 |
| 降噪设置 (Denoising) | 启用或禁用降噪功能,在"渲染属性"中配置 |
| 自适应采样 (Adaptive Sampling) | 自动调整采样,在"渲染属性"中设置 |
| 运动模糊 (Motion Blur) | 模拟运动模糊效果,在"渲染属性"中开启 |
| 环境光遮蔽 (Ambient Occlusion) | 增强阴影和深度,在"渲染属性"或"世界属性"中 |
| 透明度反弹 (Transparent Bounces) | 控制透明物体反弹次数,在"光路"设置中 |
注意4:帧率-r 30被误解析为文件路径/root/-r
避免在指令中用-r 直接在blend文档里设置帧率
注意5:显卡没显示用量,但确实又好像用了显卡


上面现象是 CPU 和 GPU 协同工作 的结果。CPU 正在努力地准备和管理渲染任务,而 GPU 则在幕后默默地进行着大量的光线追踪计算。虽然监控工具的"利用率"数字可能具有误导性,但 功耗、温度和核心/显存频率的显著升高 明确无误地表明您的 NVIDIA RTX A5000 GPU 正在被有效利用进行 Blender Cycles 渲染。

这些输出表示确实,用了GPU
Copying Transformations to device
Copying Attributes to device
Copying BVH to device
Copying Mesh to device
Updating Device | Writing constant memory 在 Blender Cycles 渲染的上下文中,“device”指的就是您选择的渲染设备,也就是您的 NVIDIA RTX A5000 GPU。这些日志条目表明 Blender 正在将渲染所需的几何体数据、材质属性、光线追踪加速结构(BVH)等从系统内存传输到 GPU 的显存中,以便 GPU 进行计算13。
Mem:X.XXM, Peak:Y.YYM 字段:
在每行日志中,| Time:00:00.XX | Mem:1310.91M, Peak:1310.91M 这一部分,第二个 Mem: 字段和 Peak: 字段很可能报告的是 GPU 显存的使用情况。它显示在渲染过程中,GPU 显存被分配并使用了大约 1.3GB (1310.91M),并且峰值也达到了这个数值。这与您之前 nvidia-smi 中看到的 0MiB 形成对比,说明 Blender 内部能够正确报告其对 GPU 显存的实际占用。



浙公网安备 33010602011771号