我读了这个问题但这似乎不是同一个问题,因为内存泄漏比我的小一个数量级,并且似乎是由 Nvidia 驱动程序引起的。这是我top
目前的输出:
top - 03:51:03 up 7 days, 11:09, 11 users, load average: 0.76, 0.62, 0.64
Tasks: 257 total, 2 running, 255 sleeping, 0 stopped, 0 zombie
...
MiB Mem: 7967.691 total, 7733.668 used, 234.023 free, 126.688 buffers
MiB Swap: 8171.996 total, 602.707 used, 7569.289 free. 917.934 cached Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1137 root 20 0 3408440 2.621g 526784 S 3.6 33.7 505:06.61 Xorg
经过大约一周的正常运行时间后,xorg 消耗了 2.5g 内存,事情开始被推向交换,随着机器逐渐变得不可用,我必须重新启动。我检查了输出xrestop
,它并没有考虑到所有使用的内存——所有内容加起来大约为 300m,我很乐意忍受。
我正在使用 Xubuntu 14.04“值得信赖”,xmonad
在xfce4
.我有 AMD 显卡,所以我使用fglrx
.关闭我打开的所有内容并不会减少xorg
内存使用量。启动时,它只占用几兆字节。
重启很麻烦——我能做些什么来减少xorg
内存使用呢?
答案1
这个问题已经有一年了,但我也遇到了同样的麻烦,也在 14.04 上,使用 xmonad 和 fglrx。原因似乎是 Java 应用程序。每当 Java 应用程序运行超过一天左右时,我的一半内存就会被 Xorg 填满。 Java 应用程序往往无法使用 xmonad 正确显示,这可以通过将 wmname 设置为 LG3D 来解决,并且我假设对 xmonad 清理内容做出了一些假设,即使它没有清理,而 LG3D 会清理。但这纯粹是猜测。
至于回答实际问题:对我有用的一件事就是sudo lightdm restart
重新登录。它很丑陋,但并不像重新启动那么糟糕:它不接触网络,这意味着任何 ssh 会话都保持活动状态。而且,它比在我的机器上实际重新启动要快得多。如果有人能给出正确的答案,我会很高兴,但现在这使得它变得容易管理。