性能调优
针对生产环境优化 milmil 性能。
Redis 缓存
Redis 是可选的,但强烈推荐在生产环境中使用。没有 Redis 时,milmil 使用内存缓存,重启后不会保留。
REDIS_URL=redis://localhost:6379容量建议
| 媒体库规模 | 推荐 Redis 内存 |
|---|---|
| < 500 部动画 | 64 MB |
| 500–2000 部动画 | 256 MB |
| 2000+ 部动画 | 512 MB+ |
转码
硬件加速
硬件加速可以显著降低转码时的 CPU 占用。没有硬件加速时,单个 1080p 转码流可能占用 100% 的 CPU 核心。
milmil 支持以下 FFmpeg 硬件加速后端:
| 后端 | 说明 |
|---|---|
| VAAPI | 视频加速 API(Linux 上的 Intel、AMD) |
| NVENC | NVIDIA GPU 编码 |
| QSV | Intel Quick Sync Video |
| VideoToolbox | macOS 硬件加速 |
在 Docker 中,需要透传 GPU 设备:
# NVIDIA
devices:
- /dev/nvidia0:/dev/nvidia0
- /dev/nvidiactl:/dev/nvidiactl
# Intel VAAPI
devices:
- /dev/dri:/dev/dri质量预设
| 预设 | 适用场景 | CPU 占用 |
|---|---|---|
ultrafast | 低功耗设备(树莓派) | 最低 |
fast | 质量与速度平衡 | 中等 |
medium | 默认 — 画质较好 | 较高 |
数据库调优
对于大型媒体库,可以调优 PostgreSQL:
-- 连接池(在 DATABASE_URL 中设置)
-- ?pool_max_conns=20&pool_min_conns=5
-- 推荐的 postgresql.conf 调整
shared_buffers = 256MB
effective_cache_size = 1GB
work_mem = 16MB