温馨提示×

centos jellyfin占用内存高怎么办

小樊
55
2026-09-21 05:08:39
栏目: 智能运维

在 CentOS 上 Jellyfin 占用内存过高,通常不是“内存泄漏”本身,而是其默认行为与媒体处理特性导致的。下面按「先排查 → 再优化 → 最后兜底」的顺序说明。


一、先确认是不是“真高”

1. 查看真实占用

top -p $(pgrep -f jellyfin)

或

ps aux | grep jellyfin

重点看:

  • RES(实际占用内存)
  • 是否持续增长不回落(可能泄漏)

2. 查看是否被转码拖垮

Jellyfin 内存高,绝大多数情况是:

  • 客户端不支持原格式 → 实时转码
  • 4K / HEVC / 高码率转码
  • 同时多人观看

二、最常见原因 & 对应解决办法(推荐先做)

✅ 1. 关闭或限制转码(最有效)

设置路径(Web):

控制台 → 播放 → 转码

建议:

  • ✅ 勾选客户端支持的常见格式(H264 / AAC)
  • ❌ 不要默认允许 4K 转码
  • 限制同时转码数(如 1~2)

✅ 2. 使用硬件转码(省内存 & CPU)

如果你有:

  • Intel(核显)
  • NVIDIA 显卡

Intel 核显(推荐)

yum install -y intel-media-driver

Jellyfin:

控制台 → 播放 → 硬件加速 → VAAPI

NVIDIA

yum install -y nvidia-driver nvidia-container-toolkit

Jellyfin 选 NVENC

✅ 硬件转码内存通常只有软件转码的 1/3~1/5


✅ 3. 限制 Jellyfin 内存(兜底)

编辑:

vim /etc/systemd/system/jellyfin.service.d/override.conf

示例(限制 1.5G):

[Service]
MemoryMax=1536M
MemoryHigh=1200M

生效:

systemctl daemon-reload
systemctl restart jellyfin

三、CentOS 特有注意点

1. CentOS 7 老版本问题

  • .NET 版本旧
  • 转码库老旧

✅ 建议:

  • 升级到 CentOS 8 / Rocky / Alma
  • 或直接使用 Docker 版 Jellyfin

2. 用 Docker 运行更稳(强烈推荐)

docker run -d \
  --name jellyfin \
  -p 8096:8096 \
  -v /opt/jellyfin/config:/config \
  -v /media:/media \
  --restart unless-stopped \
  jellyfin/jellyfin

好处:

  • 内存可控
  • 升级简单
  • 不污染系统

四、如果仍异常(疑似泄漏)

1. 定时重启(临时方案)

crontab -e
0 4 * * * systemctl restart jellyfin

2. 查看日志

journalctl -u jellyfin -n 200

重点看:

  • 转码报错
  • 插件崩溃

五、总结一句话

Jellyfin 内存高 ≠ bug,多半是转码惹的祸

✅ 最优解:

  • 客户端直接播放
  • 开硬件转码
  • Docker + 内存限制

如果你愿意,可以告诉我:

  • CentOS 版本
  • 是否 Docker
  • 是否有显卡
  • 同时观看人数

我可以直接给你一套精确配置方案。

0 踩