跳转到正文

存储与容量

录制文件通常是 Rust-Srec 部署的主要成本。容量规划必须包括原始录制、弹幕文件、管道中间文件、最终产物,以及备份或迁移期间的额外空间。

估算录制容量

可使用以下十进制近似公式:

text
每小时 GB = 平均码率 Mbit/s x 0.45
每日 GB = 每小时 GB x 每日录制小时数 x 同时录制数
所需容量 = 每日 GB x 保留天数 x 安全系数

以 6 Mbit/s 计算,一路直播每小时约 2.7 GB。每天 8 小时、保留 30 天约为 648 GB,尚未包括弹幕、管道产物、文件系统开销和安全余量。应测量平台真实码率;转码可能减少最终体积,但会增加处理期间的峰值占用。

安全系数至少取 1.2;直播时长不稳定或管道同时保留源文件与产物时应进一步提高。

Docker 路径

宿主机设置容器路径内容
DATA_DIR/app/dataSQLite 数据库与应用数据
CONFIG_DIR/app/config平台配置文件
OUTPUT_DIR/app/output录制与配置的管道输出
LOG_DIR/app/logs应用日志

生产环境使用绝对宿主机路径,并确认容器用户能在每个输出根中创建、重命名和删除文件。除非容量和告警确实共用,否则不要把 OUTPUT_DIR 指向操作系统卷。

容量控制

  • max_concurrent_downloads 限制同时写入数。
  • 下游无法处理超大文件时,通过时长或分片大小限制切分长录制。
  • CPU 与 IO 管道并发应低于主机可持续容量。
  • 任务历史和通知事件历史有各自保留设置;这些设置不会删除媒体文件。
  • 只有在非关键数据上验证目标和删除源文件行为后,才使用自动移动或上传管道。

Rust-Srec 不能替代组织的媒体生命周期策略。如保留要求需要,应在应用外自动归档或删除媒体,并确保自动化不会删除仍在写入的文件。

告警与故障处理

同时监控输出卷的剩余字节和剩余百分比,告警提前量应覆盖最长活跃录制和管道临时空间。输出根写入门会在配置目录不可写时阻止新任务并发送严重通知,但不能替代容量预测。

输出失败时:

  1. 停止增加新任务,确认受影响的输出根。
  2. 检查剩余空间、inode/文件数限制、挂载状态和所有权。
  3. 恢复写权限,并在同一文件系统完成一次小文件写入测试。
  4. 受影响主播重新启用前,确认系统健康页恢复正常。

基于 MIT 许可证发布。