CrestVPS

plex vps

媒体服务器和转码

硬件编码、TB 级媒体库、一张账单。

我们会部署什么

€86.80/月

€12430% 年付

媒体库是一个存储问题,偶尔会有计算峰值。两台机器比一台更好:VAULT 在 ZFS 上存放库,FUSION 实例在需要下午转码整个目录时提供 NVENC。通过私有 VLAN 连接它们,它们之间的流量是免费且不限量的。

为什么这个配置

VAULT 以每 TB 的价格存放库,并且它的 ZFS 快照可以防止错误的重命名。仅在需要时添加 GPU,并在任务完成后销毁它。

我们会部署什么

PlanVAULT V3
vCPU8
内存32 GB
存储14 TB
镜像Debian 13 Trixie

规模确定

分开这两种资源。库大小是 VAULT 的问题:池大小加上 20% 的余量,以及用于元数据的 ARC。转码是 FUSION 的问题。一块 RTX 4000 Ada 可以处理大约十几个并发 1080p H.264 转码,但只有三到四个 4K HEVC 流,因为色调映射在 CUDA 核心上运行,而不是编码器块。选择 L40S 以在规模上实现 AV1 输出。每个 GPU 保留 4 个 CPU 核心用于解复用、字幕和混合。

NVENC 会话以及仍然在 CPU 上运行的内容

消费级显卡历来在驱动中限制并发 NVENC 会话;专业显卡(包括 RTX 4000 Ada 和 L40S)没有此类限制,因此并发性受编码器吞吐量限制。这比 NVENC 不做什么更重要。解码使用 NVDEC,这是一个单独的块。将 HDR 色调映射到 SDR 在 CUDA 核心上运行。字幕渲染、音频转码和容器混合都在 CPU 上运行。因此,将 4K HEVC HDR 流降频到 1080p SDR 会涉及所有四条路径,这就是为什么每卡的数量从十几个流下降到少数几个。

两台机器,一个私有 VLAN

存储和 GPU 需要不同的硬件,所以它们应该作为不同的服务器运行。VAULT 在 ZFS 上持有库,并带有 NVMe 缓存;FUSION 持有卡,其余部分保持小型。加入一个私有 VLAN,并通过 NFS 以较大的 rsize 和 wsize 导出库。转码器以单个 10G 链路轻松吸收的顺序读取速率读取数据,并且这些流量都不会触及公共接口或清理路径。它还允许双方各自扩展:在不触 GPU 主机的情况下增加池容量,在不移动 20 TB 媒体的情况下增加第二张卡。

常见问题

  • 认为 GPU 正在被使用。没有 NVIDIA 运行时的容器会静默地回退到 libx264,唯一的症状是 CPU 高占用和播放卡顿。在转码期间检查 nvidia-smi,而不是日志。
  • 意外烧录字幕。PGS 和基于图像的字幕会强制对本来可以直接播放的流进行完整转码。尽可能转换为 SRT,并相应地设置客户端偏好。
  • 将转码临时目录写入 ZFS 池。段文件是小型同步写入,而池是为大型顺序媒体调优的。将临时目录指向本地 NVMe,池就不会抖动。

调整配置

  • 存储和加密ZFS with hourly snapshots · €7
  • 地址和传输Private VLAN between your servers · €6
  • 地址和传输Uplink upgrade to 10 Gbps · €19