xorg内存泄漏

xorg内存泄漏

我读了这个问题但这似乎不是同一个问题,因为内存泄漏比我的小一个数量级,并且似乎是由 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“值得信赖”,xmonadxfce4.我有 AMD 显卡,所以我使用fglrx.关闭我打开的所有内容并不会减少xorg内存使用量。启动时,它只占用几兆字节。

重启很麻烦——我能做些什么来减少xorg内存使用呢?

答案1

这个问题已经有一年了,但我也遇到了同样的麻烦,也在 14.04 上,使用 xmonad 和 fglrx。原因似乎是 Java 应用程序。每当 Java 应用程序运行超过一天左右时,我的一半内存就会被 Xorg 填满。 Java 应用程序往往无法使用 xmonad 正确显示,这可以通过将 wmname 设置为 LG3D 来解决,并且我假设对 xmonad 清理内容做出了一些假设,即使它没有清理,而 LG3D 会清理。但这纯粹是猜测。

至于回答实际问题:对我有用的一件事就是sudo lightdm restart重新登录。它很丑陋,但并不像重新启动那么糟糕:它不接触网络,这意味着任何 ssh 会话都保持活动状态。而且,它比在我的机器上实际重新启动要快得多。如果有人能给出正确的答案,我会很高兴,但现在这使得它变得容易管理。

相关内容