传输守护进程中发生内存泄漏?

传输守护进程中发生内存泄漏?

我的系统昨晚出了点问题,显然是内存不足,rtkit-deamon 抱怨 canary 线程不足,内核杀死了许多进程。

该系统是富士通 Esprimo,配备英特尔 i5-4570 4 核 CPU 和 32 GB RAM。

我在系统日志中注意到正在运行的任务列表。最大的任务是 transmission-deamon,它报告了 8,132,465 个页面 vm 正在使用(见下文)。当一个页面为 4K 时,则总计为 32G。它也确实杀死了它。在接下来的一段时间内观察这个过程似乎是合乎逻辑的。我确实注意到 /proc/meminfo 中的 MemAvailable 值在大约 2 周的时间内从 32G 稳步下降到 0。

有什么好方法可以跟踪此问题?当我查看 /proc/$PID/mem 时,它是空的。ps 中的 vsz 值得观察吗?

11 月 29 日 04:35:30 primo 内核:[1348176.819869] 任务状态(页面中的内存值):
11月29日 04:35:30 primo 内核:[1348176.819870] [ pid ] uid tgid total_vm rss pgtables_bytes swapents oom_score_adj 名称
11月29日 04:35:30 primo 内核:[1348176.819917] [ 888] 132 888 8132465 7183145 61280256 428000 0 传输数据
11 月 29 日 04:35:30 primo kernel:[1348176.820173] 内存不足:已终止进程 888 (transmission-da) total-vm:32529860kB、anon-rss:28732580kB、file-rss:0kB、shmem-rss:0kB、UID:132 pgtables:59844kB oom_score_adj:0

答案1

我自己也经历过这种情况——是的,Ubuntu 22.04 上的 Transmission 3 有一些严重内存泄漏。然而,当我升级到 Transmission 4 时,这个问题就消失了。

我在 Docker 容器中运行 Transmission,以将其与操作系统分离(从而能够运行较新版本而不会出现任何依赖问题)。

我个人使用这个容器:

如果您只想单独运行 Transmission,我推荐来自 LinuxServer.io 的 Docker 镜像:

相关内容