我在 Lenovo W500(Core2Duo T9400,4GB Ram)上运行 Ubuntu 12.04
当前内核: 3.2.0-32-generic #51-Ubuntu SMP Wed Sep 26 21:33:09 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux -- 但问题已经存在几个月了,很多软件(包括内核)更新
我经常将我的机器置于 suspend-to-ram (S3) 状态,当机器恢复时,Ubuntu 开始交换进程。我能够观察到使用的交换空间在盒子返回后立即开始增长。请参见下面的 munin 图表,差距(显然)显示了 STR 中的时间范围。
不用说,交换时盒子变得不可用,负载超过 10。
到目前为止我所做的:
在去 STR 之前,盒子运行稳定,几个小时没有(交换)问题。今天当问题再次出现时,我使用了这个脚本(-> /sf/ask/33596741/)来查找哪些进程拥有最常用的交换空间。交换狂欢后的结果是这样的(所有使用超过10M的PID):
使用的总交换:2121344 kB ======================================== kB pid 名称 ======================================== 439520 17491 爪哇 208148 22719 火狐 136640 4337 /usr/bin/quodli 120852 5271 铬 81832 5264 铬 74284 17003 铬 65368 16960 铬 57088 …
我当前的系统:14.04.4 LTS (GNU/Linux 3.13.0-85-generic x86_64)
$ free
total used free shared buffers cached
Mem: 16366288 16090588 275700 4047472 1019652 5253144
-/+ buffers/cache: 9817792 6548496 Swap: 7813116 7308592 504524
$ cat /proc/sys/fs/file-nr
1196103 0 1624594
Run Code Online (Sandbox Code Playgroud)
几个月来(以及多次更新),我遇到了一个问题,即在使用我的机器几天后(每天暂停它)内存使用量和分配的文件描述符数量突然激增。
突然间,“提交的”内存上升到大约 120 - 160 GB(!)。通常这个值位于我的物理 RAM 周围。另一个症状是我所有的 RAM + 交换都用完了。结果是一个无法使用的系统。目前我只能通过重新启动来解决这种情况。在关闭 X 后杀死几乎所有进程无助于释放提交的值。
一个强有力的指标似乎是 /proc/sys/fs/file-nr 中打开文件计数器的不合理的高值——它超过了 200 万。最近我试图将其限制为 1624594,但唯一的结果是(当然)我没有用完内存,而是用完了 FD。
有了 Munin,我可以看到 FD 和内存使用情况之间存在很强的时间相关性。
我安装了一些 CIFS 共享,我的用户有它的 gvfsd-fuse。根 FS 是 ext4。
lsof
遍历 /proc/的结果只列出了 /proc/sys/fs/file-nr 的 10% 左右。
我怀疑 MTP 是原因(当我插入我的摩托罗拉手机时),但最近发生了这种情况,自上次重启以来没有使用过 MTP。
旁注:我有用于视频的 radeon 驱动程序:
ii …
Run Code Online (Sandbox Code Playgroud)