因此,X.org 分配了数量惊人的 RAM:目前为 910MB(根据RES
htop 中的列),仅次于 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?