X.org 分配了超过 900MB 的 RAM,但是 xrestop 说实际只使用了其中的 1/40;我该如何强制它释放剩余的内存而不重新启动 X?

X.org 分配了超过 900MB 的 RAM,但是 xrestop 说实际只使用了其中的 1/40;我该如何强制它释放剩余的内存而不重新启动 X?

因此,X.org 分配了数量惊人的 RAM:目前为 910MB(根据REShtop 中的列),仅次于 Firefox(实际上是 Nightly)(刚好超过 1GB),紧随其后的是 GNOME Shell(只有 256MB)。我在网上搜索了强制 X 释放泄漏内存的方法,结果发现建议使用 xrestop 来查找原因。问题是 xrestop 是这样说的:

xrestop - Display: localhost
          Monitoring 24 clients. XErrors: 0
          Pixmaps:   21876K total, Other:     519K total, All:   22396K total

这清楚地表明 X 资源仅占用了 22MB。此时我正在运行的其他软件是 Liferea、Konversation 和 gnome-terminal,并且打开了几个选项卡。

你可能认为这是 Firefox 导致的,但事实并非如此:如果我关闭它,X.org 的内存仍然很高:现在是 957MB,在我最初写下这个问题几分钟后,xrestop 切换到

xrestop - Display: localhost
          Monitoring 23 clients. XErrors: 0
          Pixmaps:    9975K total, Other:     504K total, All:   10480K total

反而!

现在,我在 Google 上找到的所有关于 X 内存泄漏的搜索结果(实际上都发布了 xrestop 输出)都表明问题显然出在资源分配上;这些答案的资源使用量都接近 X.org 的总 RAM 使用量。但这里的情况并非如此。

我发现的错误报告 a) 来自 2009 年 b) 没有定论。

发生了什么事?我该如何释放所有多余的 RAM无需重启 X? 我不想再次加载我的会话(活动聊天、终端选项卡)。

Ubuntu GNOME 14.10
fglrx-updates 2:14.201-0ubuntu2 通过附加驱动程序安装
Lenovo G50-45
AMD A6-6310 APU 配备 AMD Radeon R4 显卡
我技术上拥有 4GB 的 RAM,但 htop 只显示可用 3221MB,并free -m显示(Firefox 仍在运行)

             total       used       free     shared    buffers     cached
Mem:          3221       3087        133          5          6        125
-/+ buffers/cache:       2955        265
Swap:         7812       2662       5150

我的系统已经运行了 12 天 4 个小时,在这段时间里,我还运行了 acme 文本编辑器、fceux、empathy、一些 sgt-puzzles 游戏,可能还有其他程序。

谢谢。

更新2015 年 1 月 31 日

top -n 1几分钟前的输出(凌晨 4:04,在短暂的减速之后):

top - 04:04:19 up 14 days,  9:00,  9 users,  load average: 1.98, 2.17, 2.06
Tasks: 414 total,   2 running, 410 sleeping,   2 stopped,   0 zombie
%Cpu(s): 10.6 us,  2.0 sy,  0.0 ni, 85.9 id,  1.2 wa,  0.0 hi,  0.2 si,  0.0 st
KiB Mem:   3298800 total,  3119652 used,   179148 free,    18796 buffers
KiB Swap:  8000508 total,  3067288 used,  4933220 free.   208568 cached Mem

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND     
17722 pietro    20   0 2672276 1.264g  38596 R  80.3 40.2 136:03.00 firefox-tr+ 
 1767 root      20   0 3267084 780500  79680 S  17.2 23.7   1168:42 Xorg        
17302 pietro    20   0 2122240 275544  52684 S  17.2  8.4  90:48.53 gnome-shell 
25038 pietro    20   0   29280   3064   2368 R  11.5  0.1   0:00.04 top         
    1 root      20   0   29584    920    776 S   0.0  0.0   0:09.45 init        
    2 root      20   0       0      0      0 S   0.0  0.0   0:00.60 kthreadd    
    3 root      20   0       0      0      0 S   0.0  0.0   0:21.44 ksoftirqd/0 
    5 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 kworker/0:+ 
    7 root      20   0       0      0      0 S   0.0  0.0  31:41.83 rcu_sched   
    8 root      20   0       0      0      0 S   0.0  0.0   6:56.03 rcuos/0     
    9 root      20   0       0      0      0 S   0.0  0.0   6:51.16 rcuos/1     
   10 root      20   0       0      0      0 S   0.0  0.0   6:45.78 rcuos/2     
   11 root      20   0       0      0      0 S   0.0  0.0  10:45.32 rcuos/3     
   12 root      20   0       0      0      0 S   0.0  0.0   0:00.00 rcu_bh      
   13 root      20   0       0      0      0 S   0.0  0.0   0:00.00 rcuob/0     
   14 root      20   0       0      0      0 S   0.0  0.0   0:00.00 rcuob/1     
   15 root      20   0       0      0      0 S   0.0  0.0   0:00.00 rcuob/2     

top -n 1刚才的输出(凌晨 4:18 左右,在另一个输出中):

top - 04:19:08 up 14 days,  9:15,  9 users,  load average: 2.22, 2.04, 1.98
Tasks: 416 total,   1 running, 413 sleeping,   2 stopped,   0 zombie
%Cpu(s): 10.6 us,  2.0 sy,  0.0 ni, 85.9 id,  1.2 wa,  0.0 hi,  0.2 si,  0.0 st
KiB Mem:   3298800 total,  3105312 used,   193488 free,     8220 buffers
KiB Swap:  8000508 total,  3064824 used,  4935684 free.   149000 cached Mem

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND     
17722 pietro    20   0 2745204 1.298g  30852 S  75.2 41.3 141:50.42 firefox-tr+ 
17302 pietro    20   0 2122624 217428  47028 S  11.6  6.6  93:07.81 gnome-shell 
25183 pietro    20   0   29280   3152   2456 R  11.6  0.1   0:00.04 top         
14792 pietro    20   0  166024    752    752 S   5.8  0.0   0:03.54 plumber     
    1 root      20   0   29584    916    776 S   0.0  0.0   0:09.45 init        
    2 root      20   0       0      0      0 S   0.0  0.0   0:00.60 kthreadd    
    3 root      20   0       0      0      0 S   0.0  0.0   0:21.45 ksoftirqd/0 
    5 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 kworker/0:+ 
    7 root      20   0       0      0      0 S   0.0  0.0  31:43.49 rcu_sched   
    8 root      20   0       0      0      0 S   0.0  0.0   6:56.52 rcuos/0     
    9 root      20   0       0      0      0 S   0.0  0.0   6:51.66 rcuos/1     
   10 root      20   0       0      0      0 S   0.0  0.0   6:46.29 rcuos/2     
   11 root      20   0       0      0      0 S   0.0  0.0  10:46.09 rcuos/3     
   12 root      20   0       0      0      0 S   0.0  0.0   0:00.00 rcu_bh      
   13 root      20   0       0      0      0 S   0.0  0.0   0:00.00 rcuob/0     
   14 root      20   0       0      0      0 S   0.0  0.0   0:00.00 rcuob/1     
   15 root      20   0       0      0      0 S   0.0  0.0   0:00.00 rcuob/2     

还有一个,也是刚才(凌晨 4:20):

top - 04:20:59 up 14 days,  9:17,  9 users,  load average: 2.20, 2.09, 2.00
Tasks: 416 total,   2 running, 412 sleeping,   2 stopped,   0 zombie
%Cpu(s): 10.6 us,  2.0 sy,  0.0 ni, 85.9 id,  1.2 wa,  0.0 hi,  0.2 si,  0.0 st
KiB Mem:   3298800 total,  3102064 used,   196736 free,     7196 buffers
KiB Swap:  8000508 total,  3042968 used,  4957540 free.   137692 cached Mem

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND     
17302 pietro    20   0 2122688 217972  47528 S  16.8  6.6  93:23.58 gnome-shell 
17722 pietro    20   0 2765140 1.289g  36856 R  16.8 41.0 142:46.71 firefox-tr+ 
25197 pietro    20   0   29280   3136   2444 R  11.2  0.1   0:00.05 top         
25200 pietro    20   0  233480   9448   8316 S  11.2  0.3   0:00.02 gpaste      
    9 root      20   0       0      0      0 S   5.6  0.0   6:51.72 rcuos/1     
 1767 root      20   0 3260868 858068  73568 S   5.6 26.0   1169:44 Xorg        
    1 root      20   0   29584    872    776 S   0.0  0.0   0:09.45 init        
    2 root      20   0       0      0      0 S   0.0  0.0   0:00.60 kthreadd    
    3 root      20   0       0      0      0 S   0.0  0.0   0:21.46 ksoftirqd/0 
    5 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 kworker/0:+ 
    7 root      20   0       0      0      0 S   0.0  0.0  31:43.72 rcu_sched   
    8 root      20   0       0      0      0 S   0.0  0.0   6:56.58 rcuos/0     
   10 root      20   0       0      0      0 S   0.0  0.0   6:46.34 rcuos/2     
   11 root      20   0       0      0      0 S   0.0  0.0  10:46.21 rcuos/3     
   12 root      20   0       0      0      0 S   0.0  0.0   0:00.00 rcu_bh      
   13 root      20   0       0      0      0 S   0.0  0.0   0:00.00 rcuob/0     
   14 root      20   0       0      0      0 S   0.0  0.0   0:00.00 rcuob/1     

(如下面 Fabby 的要求)

更新2015 年 2 月 5 日

等一下,有些不对劲:我两天前重启了电脑,而当时 X.org 只分配了 254MB,而不是 900+ MB...??? xrestop 说只使用了 30MB。图形驱动程序是否只需要固定数量的 RAM?

相关内容