小编mdo*_*mdo的帖子

Swap、Swapiness 和 Standby:唤醒时开始交换

我在 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。

到目前为止我所做的:

  • 将 swappiness 从默认值 (60) 降低到 10(通过 /etc/sysctl.conf: vm.swappiness=10)——这大大改善了情况,但有时问题又回来了,我还没有找到触发器(比如内存使用) ) 暂时
  • 将swappiness降低到5——也许这又带来了改进

在去 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 …

suspend swap

7
推荐指数
1
解决办法
806
查看次数

谁吃掉了我所有的文件描述符和内存?

我当前的系统: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)

swap ram lsof

6
推荐指数
1
解决办法
1538
查看次数

标签 统计

swap ×2

lsof ×1

ram ×1

suspend ×1