解决 qBittorrent 内存占用过高的问题
2024-06-22 · 459 chars · 3 min read
最近一直在折腾小主机(极摩客 M5 锐龙R7 5700U),通过 pve 虚拟了一台 ubuntu server,用 docker 部署了一些常用的服务,分配了 16G 内存,没想到很快就耗尽了:
$ free -h total used free shared buff/cache available Mem: 15Gi 397Mi 302Mi 2.0Mi 14Gi 14Gi Swap: 0B 0B 0B
只使用了 397 MB,但只剩余 302 MB,几乎全部被 cache 耗尽了。通过 atop -m
查看 MEM
:
- tot: 15.6G
- free: 293.8M
- cache: 14.7G
- dirty: 0.1M
- buff: 100.4M
- slab: 187.6M
- numnode: 1
cache 占用了几乎全部内存。
基本确定就是 qBittorrent 的问题了,虽然里面只有 4 个资源,还大部分没速度......
网上很多类似的状况:
- https://github.com/haakuya/Qbit_tools/blob/main/README.md 这里讲了一些 libtorrent 1.x 和配置优化的方法
- https://blog.17lai.site/posts/f6b32521/ 这里主要是通过「磁盘缓存」和 「磁盘缓存到期间隔」解决的,这两个设置在最新版里标明了只针对 libtorrent 1.x
- https://seailor.com/posts/103458fd/ 2021 年的文章,不确定修复了没有,文章说存在「磁盘缓存无效」「闲置内存不回收」的 Bug
- https://github.com/arvidn/libtorrent/issues/6667 官方仓库里 2022 年的一个 issue,太长没细看
- https://github.com/qbittorrent/qBittorrent/issues/20925 比较新的 issues,说修改
Disk IO type
为POSIX-compliant
- https://github.com/qbittorrent/qBittorrent/issues/19914 观点同上,
POSIX-compliant
模式下正常,mmap
内存泄露 - https://github.com/qbittorrent/qBittorrent/issues/20675 这个 issue 比较新,同时还有几个类似的反馈,web ui 多开引起的泄露,醉了...
我尝试修改为 POSIX-compliant
,下载三个 10G 的电影,速度在 7~8 MB/s 左右,内存最多涨到 10GB;一个下载完之后,内存降到了 6GB 左右;三个全部删除后,内存逐渐降到 1GB 以下。看起来还是有点用的,至少不会像 mmap
一样永远降不下来。
用几天观察下...