使用几个小时后,将设置调整为100%

出于某种原因,我的交换使用量在几个小时的使用后会达到100%的容量。然后我的界面会冻结,之后我必须等待20分钟才能移动鼠标。
目前怀疑的罪魁祸首是Chromium或XChat,因为每当出现这个问题时,它们总是存在。我更倾向于XChat,因为我之前注意到冻结开始的时间正好是我点击与XChat相关的东西时。
我还注意到交换使用量会随着时间的推移而增加。
我也打开了Emesene和Dropbox,但我怀疑它们不是问题的根本原因,因为当界面冻结时它们只是处于空闲状态。
目前重新启动是我唯一的解决方法(至少我找到的唯一方法),但如果界面没有完全停止工作,那就需要进行硬重置。此外,当交换已满时,硬盘灯会一直亮着。 不知道为什么会发生这种情况

编辑: 找到了一些额外的信息。这是free -m的输出:

             total       used       free     shared    buffers     cached
Mem:          3760       3653        107          0          4       2638
-/+ buffers/cache:       1010       2750
Swap:         3890       2643       1247

如你所见,物理内存由于某种原因被缓存,而可用的空闲内存相对较小。我认为这导致了交换使用量增加。
我需要解决这个问题,因为我目前每两天就需要关机一次。
谢谢。
更新:根据要求提供/etc/fstab文件。
UUID=20fab2bb-2424-40b0-ae2b-74693ea83f45 /               ext4    errors=remount-ro,user_xattr 0       1
# swap was on /dev/sda5 during installation
UUID=e04c1c74-9b99-4f07-8d3c-f0d6e8d3c465 none            swap    sw              0       0

更新: ps -aux 信息
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.0  24144  1968 ?        Ss   Jul11   0:02 /sbin/init
root         2  0.0  0.0      0     0 ?        S    Jul11   0:00 [kthreadd]
root         3  0.0  0.0      0     0 ?        S    Jul11   0:00 [ksoftirqd/0]
root         6  0.0  0.0      0     0 ?        S    Jul11   0:00 [migration/0]
root        17  0.0  0.0      0     0 ?        S<   Jul11   0:00 [cpuset]
root        18  0.0  0.0      0     0 ?        S<   Jul11   0:00 [khelper]
root        19  0.0  0.0      0     0 ?        S<   Jul11   0:00 [netns]
root        21  0.0  0.0      0     0 ?        S    Jul11   0:00 [sync_supers]
root        22  0.0  0.0      0     0 ?        S    Jul11   0:00 [bdi-default]
root        23  0.0  0.0      0     0 ?        S<   Jul11   0:00 [kintegrityd]
root        24  0.0  0.0      0     0 ?        S<   Jul11   0:00 [kblockd]
root        25  0.0  0.0      0     0 ?        S<   Jul11   0:00 [ata_sff]
root        26  0.0  0.0      0     0 ?        S    Jul11   0:00 [khubd]
root        27  0.0  0.0      0     0 ?        S<   Jul11   0:00 [md]
root        30  0.0  0.0      0     0 ?        S    Jul11   0:00 [khungtaskd]
root        31  0.0  0.0      0     0 ?        S    Jul11   0:05 [kswapd0]
root        32  0.0  0.0      0     0 ?        SN   Jul11   0:00 [ksmd]
root        33  0.0  0.0      0     0 ?        SN   Jul11   0:00 [khugepaged]
root        34  0.0  0.0      0     0 ?        S    Jul11   0:00 [fsnotify_mark]
root        35  0.0  0.0      0     0 ?        S    Jul11   0:00 [ecryptfs-kthr]
root        36  0.0  0.0      0     0 ?        S<   Jul11   0:00 [crypto]
root        40  0.0  0.0      0     0 ?        S<   Jul11   0:00 [kthrotld]
root        43  0.0  0.0      0     0 ?        S<   Jul11   0:00 [kmpathd]
root        44  0.0  0.0      0     0 ?        S<   Jul11   0:00 [kmpath_handle]
root       273  0.0  0.0      0     0 ?        S    Jul11   0:00 [scsi_eh_0]
root       274  0.0  0.0      0     0 ?        S    Jul11   0:00 [scsi_eh_1]
root       275  0.0  0.0      0     0 ?        S    Jul11   0:00 [scsi_eh_2]
root       276  0.0  0.0      0     0 ?        S    Jul11   0:00 [scsi_eh_3]
root       277  0.0  0.0      0     0 ?        S    Jul11   0:01 [scsi_eh_4]
root       279  0.0  0.0      0     0 ?        S    Jul11   0:00 [scsi_eh_5]
root       353  0.0  0.0      0     0 ?        S    Jul11   0:01 [jbd2/sda1-8]
root       354  0.0  0.0      0     0 ?        S<   Jul11   0:00 [ext4-dio-unwr]
root       404  0.0  0.0  17052   520 ?        S    Jul11   0:00 upstart-udev-br
root       414  0.0  0.0  21536   652 ?        S<s  Jul11   0:00 udevd --daemon
root       627  0.0  0.0      0     0 ?        S    Jul11   0:00 [ips-adjust]
root       630  0.0  0.0      0     0 ?        S    Jul11   0:02 [ips-monitor]
root       631  0.0  0.0      0     0 ?        S<   Jul11   0:00 [kmemstick]
root       655  0.0  0.0      0     0 ?        S<   Jul11   0:00 [kpsmoused]
root       657  0.0  0.0      0     0 ?        S<   Jul11   0:00 [cfg80211]
root       806  0.0  0.0  15004   496 ?        S    Jul11   0:00 upstart-socket-
root       819  0.0  0.0      0     0 ?        S<   Jul11   0:00 [iwlagn]
root       858  0.0  0.0      0     0 ?        S<   Jul11   0:00 [l2cap]
root       911  0.0  0.0      0     0 ?        S<   Jul11   0:00 [hd-audio0]
root       920  0.0  0.0      0     0 ?        S<   Jul11   0:00 [hd-audio1]
syslog     989  0.0  0.0 119988   924 ?        Sl   Jul11   0:00 rsyslogd -c4
102       1002  0.0  0.0  25496  2316 ?        Ss   Jul11   0:18 dbus-daemon --s
root      1014  0.0  0.0  83168  2848 ?        Ssl  Jul11   0:00 gdm-binary
avahi     1018  0.0  0.0  32132  1336 ?        S    Jul11   0:00 avahi-daemon: r
avahi     1019  0.0  0.0  32008   156 ?        S    Jul11   0:00 avahi-daemon: c
root      1020  0.0  0.0 158344  3452 ?        Ssl  Jul11   0:06 NetworkManager
root      1022  0.0  0.0 125528  2376 ?        Sl   Jul11   0:01 /usr/sbin/conso
root      1037  0.0  0.0  64656  1972 ?        S    Jul11   0:00 /usr/sbin/modem
root      1113  0.0  0.0 136612  3404 ?        Sl   Jul11   0:02 /usr/lib/policy
root      1130  0.0  0.0  77284  2012 ?        Ss   Jul11   0:00 /usr/sbin/cupsd
root      1170  0.0  0.0  97816  2704 ?        Sl   Jul11   0:00 /usr/lib/gdm/gd
root      1180  0.0  0.0   6196   528 tty4     Ss+  Jul11   0:00 /sbin/getty -8
root      1183  0.0  0.0   6196   528 tty5     Ss+  Jul11   0:00 /sbin/getty -8
root      1196  0.0  0.0   6196   532 tty2     Ss+  Jul11   0:00 /sbin/getty -8
root      1199  0.0  0.0   6196   528 tty3     Ss+  Jul11   0:00 /sbin/getty -8
root      1204  0.0  0.0   6196   528 tty6     Ss+  Jul11   0:00 /sbin/getty -8
root      1214  0.0  0.0   4416   784 ?        Ss   Jul11   0:00 acpid -c /etc/a
root      1217  0.0  0.0  18928   844 ?        Ss   Jul11   0:00 cron
daemon    1220  0.0  0.0  16728   200 ?        Ss   Jul11   0:00 atd
root      1230  1.8  1.1 533108 44700 tty7     Ss+  Jul11  32:07 /usr/bin/X :0 -
mysql     1245  0.0  0.0 168744  2572 ?        Ssl  Jul11   0:10 /usr/sbin/mysql
root      1248  0.0  0.0  15780   564 ?        Ss   Jul11   0:05 /usr/sbin/irqba
root      1262  0.0  0.0  28932  1260 ?        S    Jul11   0:01 /sbin/wpa_suppl
root      1292  0.0  0.0   4400   368 ?        S    Jul11   0:00 /usr/sbin/hddte
root      1411  0.0  0.0  37364  1092 ?        Ss   Jul11   0:00 /usr/lib/postfi
root      1465  0.0  0.0  65800   672 ?        Ss   Jul11   0:00 /usr/sbin/winbi
root      1535  0.0  0.0      0     0 ?        S<   Jul11   0:00 [krfcommd]
root      1569  0.0  0.0 173652  1308 ?        Ss   Jul11   0:00 /usr/sbin/apach
www-data  1582  0.0  0.0 173652   236 ?        S    Jul11   0:00 /usr/sbin/apach
www-data  1583  0.0  0.0 173652   236 ?        S    Jul11   0:00 /usr/sbin/apach
www-data  1584  0.0  0.0 173652   236 ?        S    Jul11   0:00 /usr/sbin/apach
www-data  1585  0.0  0.0 173652   236 ?        S    Jul11   0:00 /usr/sbin/apach
www-data  1586  0.0  0.0 173652   236 ?        S    Jul11   0:00 /usr/sbin/apach
root      1630  0.0  0.0      0     0 ?        S    Jul11   0:00 [flush-8:0]
root      1637  0.0  0.0  65800   224 ?        S    Jul11   0:00 /usr/sbin/winbi
root      1766  0.0  0.0   6196   528 tty1     Ss+  Jul11   0:00 /sbin/getty -8
root      1820  0.0  0.0 135156  2396 ?        Sl   Jul11   0:00 /usr/lib/gdm/gd
rtkit     1825  0.0  0.0 103164  1040 ?        SNl  Jul11   0:00 /usr/lib/rtkit/
root      1830  0.0  0.1 144204  4276 ?        Sl   Jul11   0:15 /usr/lib/upower
ulti    2065  0.0  0.1 189116  3896 ?        Sl   Jul11   0:00 /usr/bin/gnome-
ulti    2084  0.0  0.1 243352  6428 ?        Ssl  Jul11   0:03 gnome-session -
ulti    2116  0.0  0.0  60840  3028 ?        Sl   Jul11   0:31 /usr/bin/ibus-d
ulti    2120  0.0  0.0  12092    16 ?        Ss   Jul11   0:00 /usr/bin/ssh-ag
ulti    2123  0.0  0.0  26400   328 ?        S    Jul11   0:00 /usr/bin/dbus-l
ulti    2124  0.0  0.0  27712  3128 ?        Ss   Jul11   1:15 //bin/dbus-daem
ulti    2126  0.0  0.0 130548  2792 ?        Sl   Jul11   0:00 /usr/lib/ibus/i
ulti    2128  0.0  0.5 456024 19524 ?        Sl   Jul11   0:41 /usr/bin/python
ulti    2130  0.0  0.1 145864  5700 ?        S    Jul11   0:00 /usr/lib/ibus/i
ulti    2135  0.0  0.1  61484  3972 ?        S    Jul11   0:04 /usr/lib/libgco
ulti    2137  0.0  0.1  72168  5692 ?        S    Jul11   0:03 /usr/lib/ibus-p
ulti    2145  0.0  0.2 474668  8128 ?        Ssl  Jul11   0:18 /usr/lib/gnome-
ulti    2149  0.0  0.3 344292 14180 ?        Sl   Jul11   0:22 /usr/lib/notify
ulti    2158  0.0  0.0  55960  2148 ?        S    Jul11   0:00 /usr/lib/gvfs/g
ulti    2163  0.0  0.0  81008  1488 ?        Ssl  Jul11   0:00 /usr/lib/gvfs//
ulti    2167  0.3  0.2 279904  8684 ?        Sl   Jul11   6:35 /usr/bin/compiz
ulti    2186  0.0  0.0  22608   768 ?        S    Jul11   0:13 syndaemon -i 0.
ulti    2188  0.0  0.0 161972  3272 ?        S    Jul11   0:00 /usr/lib/gvfs/g
root      2191  0.0  0.0 136120  3504 ?        Sl   Jul11   0:00 /usr/lib/udisks
root      2192  0.0  0.0  45168   804 ?        S    Jul11   0:02 udisks-daemon: 
ulti    2195  0.0  0.0  77352  1752 ?        Sl   Jul11   0:01 /usr/lib/gvfs/g
ulti    2198  0.0  0.0  63556  2028 ?        S    Jul11   0:00 /usr/lib/gvfs/g
ulti    2199  0.1  1.4 738152 55152 ?        Sl   Jul11   2:27 nautilus
ulti    2201  0.0  0.4 398040 16004 ?        SLl  Jul11   0:25 nm-applet --sm-
ulti    2202  0.0  0.1 347020  6020 ?        Sl   Jul11   0:00 /usr/lib/evolut
ulti    2203  0.0  0.2 317560  8580 ?        Sl   Jul11   0:00 bluetooth-apple
ulti    2204  0.0  0.1 289280  5972 ?        Sl   Jul11   0:01 zeitgeist-datah
ulti    2207  0.0  0.4 381248 18424 ?        Sl   Jul11   0:16 gnome-panel
ulti    2211  0.0  0.2 339028 10792 ?        Sl   Jul11   0:00 /usr/lib/policy
ulti    2212  0.0  0.6 478920 24388 ?        Sl   Jul11   0:02 synapse --start
ulti    2219  0.0  0.3 188988 11680 ?        Sl   Jul11   0:02 /usr/bin/python
ulti    2221  0.1  0.3 995912 13024 ?        Sl   Jul11   2:20 python /usr/bin
ulti    2223  0.0  0.3 480188 13952 ?        Sl   Jul11   0:40 gnome-power-man
ulti    2232  0.0  0.5 688680 20392 ?        Ssl  Jul11   0:20 /home/ulti/.d
ulti    2235  0.0  0.0  10848   452 ?        S    Jul11   0:00 /bin/cat
ulti    2240  0.0  0.1 330376  5452 ?        Sl   Jul11   0:01 /usr/lib/evolut
ulti    2243  0.0  0.0      0     0 ?        Z    Jul11   0:00 [zei] <defunct>
ulti    2261  0.0  0.1 180360  5624 ?        S    Jul11   0:00 /usr/lib/gnome-
ulti    2325  0.0  0.2 281168  8304 ?        Sl   Jul11   0:00 /usr/lib/gnome-
ulti    2327  0.0  0.0  60780  2912 ?        S    Jul11   0:00 /usr/lib/gvfs/g
ulti    2330  0.0  0.0  56812  2496 ?        S    Jul11   0:00 /usr/bin/obex-d
ulti    2331  0.0  0.1 245636  5244 ?        Ss   Jul11   0:04 gnome-screensav
ulti    2348  0.0  0.0   4220   488 ?        Ss   Jul11   0:00 /bin/sh -c /usr
ulti    2349  0.0  0.3 339428 13760 ?        Sl   Jul11   0:18 /usr/bin/unity-
ulti    2351  0.0  0.0 161388  2380 ?        Ssl  Jul11   0:00 /usr/lib/bonobo
ulti    2368  0.0  0.3 346704 15276 ?        Sl   Jul11   1:09 /usr/lib/gnome-
ulti    2371  0.0  0.2 372276 10936 ?        Sl   Jul11   0:21 /usr/lib/gnome-
ulti    2373  0.0  0.2 298172  9268 ?        Sl   Jul11   0:00 /usr/lib/gnome-
ulti    2375  0.4  0.5 415272 21692 ?        Sl   Jul11   7:48 /usr/lib/indica
ulti    2377  0.0  0.2 276272  8636 ?        Sl   Jul11   0:24 /usr/lib/gnome-
ulti    2411  0.0  0.0  49920  2144 ?        S    Jul11   0:00 /usr/lib/gvfs/g
ulti    2414  0.0  0.0 122464  2396 ?        Sl   Jul11   0:00 /usr/lib/d-conf
ulti    2421  0.0  0.1 305576  4624 ?        Sl   Jul11   0:00 /usr/lib/indica
ulti    2423  0.0  0.1 227072  4028 ?        Sl   Jul11   0:00 /usr/lib/indica
ulti    2425  0.0  0.1 405464  4152 ?        Sl   Jul11   0:01 /usr/lib/indica
ulti    2427  0.0  0.1 315800  6724 ?        Sl   Jul11   0:01 /usr/lib/indica
ulti    2429  0.0  0.1 209964  6180 ?        Sl   Jul11   0:35 /usr/lib/indica
ulti    2431  0.0  0.1 311128  4096 ?        Sl   Jul11   0:00 /usr/lib/indica
ulti    2460  0.0  0.0 159216  3016 ?        Sl   Jul11   0:01 /usr/lib/geoclu
ulti    2466  0.0  0.0  56220  2008 ?        S    Jul11   0:00 /usr/lib/gvfs/g
ulti    2491  0.0  0.2 237108  7964 ?        S    Jul11   0:11 /usr/bin/python
ulti    2511  0.1  0.5 431804 22796 ?        Sl   Jul11   2:35 xchat
ulti    2513  0.0  0.2 225192 10000 ?        S    Jul11   0:07 /usr/lib/bamf/b
ulti    2517  0.0  0.3 368132 12532 ?        Sl   Jul11   0:44 /usr/bin/python
ulti    2555  0.3  0.2 291168  7864 ?        Sl   Jul11   5:24 skype
ulti    2556  0.0  0.2 322488  9860 ?        Sl   Jul11   0:01 update-notifier
ulti    2628  0.0  0.3 334148 15260 ?        Dl   Jul11   0:07 gnome-terminal
ulti    2636  0.0  0.0  14612   764 ?        S    Jul11   0:00 gnome-pty-helpe
ulti    6237  0.5  2.1 742192 81440 ?        SLl  Jul11   5:56 /opt/google/chr
ulti    6242  0.0  0.0 238432  3284 ?        S    Jul11   0:11 /opt/google/chr
ulti    6244  0.0  0.1 274712  5940 ?        S    Jul11   0:00 /opt/google/chr
ulti    6267  0.1  1.6 958724 65380 ?        SNl  Jul11   1:49 /opt/google/chr
ulti    6275  0.0  0.3 869444 13328 ?        Sl   Jul11   0:06 /opt/google/chr
ulti    6303  0.0  0.3 869440 13668 ?        Sl   Jul11   0:07 /opt/google/chr
ulti    6342  0.0  0.4 870532 15612 ?        Sl   Jul11   0:08 /opt/google/chr
ulti    6347  0.0  0.3 869444 13268 ?        Sl   Jul11   0:06 /opt/google/chr
ulti    6358  1.1  1.4 1003268 54604 ?       Sl   Jul11  12:00 python /usr/bin
ulti    7642  0.0  0.1 271220  7344 ?        S    Jul11   0:00 /usr/lib/gvfs/g
ulti    9719  0.0  0.1  28516  5580 pts/1    Ss   Jul11   0:00 bash
root     10577  0.0  0.0      0     0 ?        S    08:15   0:00 [migration/1]
root     10579  0.0  0.0      0     0 ?        S    08:15   0:00 [ksoftirqd/1]
root     10580  0.0  0.0      0     0 ?        S    08:15   0:00 [migration/2]
root     10582  0.0  0.0      0     0 ?        S    08:15   0:00 [ksoftirqd/2]
root     10583  0.0  0.0      0     0 ?        S    08:15   0:00 [migration/3]
root     10585  0.0  0.0      0     0 ?        S    08:15   0:00 [ksoftirqd/3]
root     10613  0.0  0.0      0     0 ?        S<   08:15   0:00 [hci0]
root     10638  0.0  0.0      0     0 ?        S    08:15   0:00 [mmcqd/0]
root     10894  0.0  0.0   7084   820 ?        S    08:15   0:00 /sbin/dhclient
postfix  10995  0.0  0.0  39480   928 ?        S    08:15   0:00 qmgr -l -t fifo
root     11013  0.0  0.0  15664  1152 ?        Ss   08:16   0:00 /sbin/mount.ntf
ulti   11339  0.0  0.3 262796 13452 ?        Sl   08:31   0:01 /opt/google/chr
ulti   12488  3.2  2.9 1044824 114420 ?      Sl   09:33  10:16 python /usr/bin
ulti   12923  0.0  0.0 287192  2552 ?        S<sl 09:53   0:04 /usr/bin/pulsea
ulti   12929  0.0  0.0 181372  3096 ?        Sl   09:53   0:00 /usr/lib/pulsea
root     15585  0.0  0.0  84056  3488 ?        S    11:16   0:00 /usr/bin/python
ulti   15756  0.0  0.0  71016  3080 ?        S    11:23   0:00 /usr/lib/gvfs/g
root     15952  0.0  0.0  73200  2764 ?        S    11:25   0:00 /usr/bin/python
ulti   15998  0.0  0.0      0     0 ?        Z    11:25   0:00 [sh] <defunct>
root     16013  0.0  0.0      0     0 ?        S    11:26   0:01 [kworker/1:1]
root     16672  0.0  0.0      0     0 ?        S    11:33   0:01 [kworker/u:0]
root     16697  0.0  0.0      0     0 ?        S    11:33   0:02 [kworker/2:1]
ulti   16937  0.0  0.0  42516  3556 pts/1    S+   11:36   0:02 ssh -2 -C -D 80
root     17235  0.0  0.0  21532   684 ?        S<   11:46   0:00 udevd --daemon
root     17236  0.0  0.0  21532   640 ?        S<   11:46   0:00 udevd --daemon
root     17428  0.0  0.0      0     0 ?        S    11:57   0:01 [kworker/u:2]
postfix  18676  0.0  0.0  39428  1372 ?        S    13:15   0:00 pickup -l -t fi
ulti   19703  0.0  0.1  28516  5844 pts/0    Ss   14:04   0:00 bash
root     19838  0.0  0.0  23252  1644 ?        Ss   14:05   0:00 /usr/sbin/bluet
root     20081  0.0  0.0      0     0 ?        S    14:09   0:00 [kworker/3:0]
root     20269  0.0  0.0      0     0 ?        S    14:14   0:00 [kworker/2:2]
root     20322  0.0  0.0      0     0 ?        S    14:15   0:00 [kworker/1:2]
root     20639  0.0  0.0      0     0 ?        S    14:26   0:00 [kworker/3:1]
root     20711  0.0  0.0      0     0 ?        S    14:30   0:00 [kworker/0:1]
root     20805  0.0  0.0      0     0 ?        S    14:33   0:00 [kworker/u:3]
root     20861  0.0  0.0      0     0 ?        S    14:35   0:00 [kworker/0:0]
root     21027  0.0  0.0      0     0 ?        S    14:41   0:00 [kworker/0:2]
ulti   21098  2.7  1.0 893504 39720 ?        SNl  14:44   0:01 /opt/google/chr
ulti   21116  2.1  0.6 381512 24504 ?        Sl   14:45   0:01 geany
ulti   21120  0.0  0.0  14612   828 ?        S    14:45   0:00 gnome-pty-helpe
ulti   21121  0.5  0.1  28504  5812 pts/2    Ss+  14:45   0:00 /bin/bash
ulti   21236  7.1  1.0 895512 41708 ?        Sl   14:45   0:01 /opt/google/chr
ulti   21246  0.0  0.0  21932  1400 pts/0    R+   14:46   0:00 ps -aux

设置swapiness为10后的vmstats

procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa
 2  0 1458588 119320   2292 2748584    1   13    32    25   16  192  6  2 90  2

Why is the virtual memory usage so high? That's way higher than what both my swap and my memory can offer

为什么虚拟内存使用率这么高?这比我的交换文件和内存提供的都要高得多。
smap信息:这些很长
- 来自smaps的Chrome内存- ~930MB VIRT - 来自smaps的Emesene内存- ~900MB VIRT
更新:最近发生了一次内存不足事件(此时我关闭了交换文件,并且缓存的内存占用了约2.5GB,仅使用了约1GB的物理内存,因此从技术上讲,由于内核所谓的缓存回收,我还有另外2.5GB可供使用): 显示所谓“内存不足事件”的系统日志事件 还有一个页面显示了我确切的问题:http://raj2796.wordpress.com/2009/11/09/reducing-cached-memory-usage-linux-high-memory-usage-diagnosing-and-troubleshooting-on-vmware-and-out-of-memory-oom-killer-problem-and-solution/

请问您使用的是哪个版本的Ubuntu?还有Chrome和Xchat的版本号也麻烦告诉我一下。 - wojox
2打开“系统监视器”的“进程”选项卡,或者运行tophtop的终端。按照内存使用量降序排列进程。观察一个进程(很可能)开始占用所有可用内存,甚至更多。在系统变得无法使用之前将其终止。 - Gilles 'SO- stop being evil'
1在解决这个问题之前,你至少可以通过使用命令 sudo swapoff -asudo swapon -a 来切换交换空间的开启和关闭状态,继续工作。 - Ashfame
3一个更好的切换交换空间的命令是 sudo swapoff -a; sudo swapon -a。注意分号以及两个命令如何合并为一个。之所以更好,是因为使用这种形式,如果出现错误,你仍然会保留交换空间,并且不太可能耗尽内存。 - Scott Severance
Ubuntu 11.04,我觉得我可能找到了问题所在。请看编辑部分。 - Pwnna
cat /etc/fstab的输出是什么? - scottl
另外,执行vmstat 1命令(当你注意到交换空间增加时让它运行一段时间)。 - scottl
当我重新启动电脑时,似乎"free"部分的可用空间约为2GB,而缓存区相对较小,此时交换空间为0。请查看编辑后的cat /etc/fstab命令。 - Pwnna
下次发生这种情况时,你能给我们提供ps -aux的输出吗? - RobinJ
现在,“free”部分正在减少,而缓存正在增加。当“free”达到100时,我将看看交换是否增加。 - Pwnna
ps -aux添加,是的,当缓存内存增加到约2GB左右时会发生。 - Pwnna
请问您能否将vmstat 1的输出发表出来? - scottl
"缓存"是系统的磁盘缓存。如果你在使用磁盘,你会预期它会增加。这是件好事。如果一个应用程序需要被缓存占用的内存,它会得到释放。不要担心一般情况下的"空闲"不足(虽然显然存在某些问题)。 - Roger Light
解释以下趋势:空闲内存减少、缓存增加、交换空间增加。 - Pwnna
空闲内存就是浪费的内存;Linux总是试图用磁盘缓存填充它。有时,不断增长的磁盘缓存可能会将一些长时间未使用的页面从内存中转移到交换空间,但仅此无法解释你所看到的情况。 - Marius Gedminas
顺便说一句:sudo swapoff -a; sudo swapon -a只在第一次使用时有效,第二次无效。另外,我已经使用最新的fglrx驱动程序对内核进行了修补(以启用可切换图形),这可能是原因吗? - Pwnna
我认为原因在于xorg-edger的Linux内核,现在从内核检查中安装,交换空间没有被使用得那么多(当"free"内存约为500时,我启动了我的xp虚拟机,但没有任何东西被放到交换空间中,就像以前一样)。尽管如此,我不能确定,因为目前有35MB的交换空间被占用。 - Pwnna
有道理,内核漏洞可能是导致这种行为的原因。 - Javier Rivera
嗯...现在换到了500MB,使用了5个小时....意思是问题还在,但比以前好一些。 - Pwnna
@Ashfame 哥们儿!:-) 那个技巧太棒了!!!我简直不敢相信我以前从来没试过那样切换交换。这么简单的解决办法。我还在想怎么才能防止它再次出现,以及如何自动化处理。有什么主意吗? - hourback
6个回答

如何配置swappiness?

Linux内核提供了一个可调整的设置,用于控制交换文件的使用频率,称为swappiness。

swappiness设置为意味着除非绝对必要(即内存不足),否则将避免使用磁盘,而swappiness设置为100意味着程序将几乎立即被交换到磁盘上。

Ubuntu系统默认的swappiness值为60,这意味着如果内存使用量接近我的RAM的一半,交换文件将经常被使用。您可以通过运行以下命令来检查您自己系统的swappiness值:

one@onezero:~$ cat /proc/sys/vm/swappiness
60

由于我有4 GB 的内存,所以我想将其降低到10或15。当我的内存使用率达到80%或90%时,交换文件才会被使用。要更改系统的swappiness值,请以root身份打开/etc/sysctl.conf文件。然后,在文件中更改或添加以下行:
vm.swappiness = 10

重启以使更改生效
您也可以在系统运行时更改该值
sysctl vm.swappiness=10

您也可以通过以root身份运行swapoff -a,然后再运行swapon -a来清除您的交换空间,而不是重新启动以实现相同的效果。
计算您的交换空间公式为
free -m (total) / 100 = A

A * 10

root@onezero:/home/one# free -m
             total       used       free     shared    buffers     cached
Mem:          3950       2262       1687          0        407        952
-/+ buffers/cache:        903       3047
Swap:         1953          0       1953

所以总共是3950 / 100 = 39.5 * 10 = 395。
这么说的意思是,当剩余RAM内存为395 MB的10%时,它开始使用swapiness。

帮助 . Ubuntu . 交换空间

什么是 swappiness

swappiness 参数控制内核将进程从物理内存移到交换磁盘的倾向。因为磁盘比 RAM 慢得多,如果进程过于积极地移出内存,这可能导致系统和应用程序响应时间变慢。

. swappiness 的值可以在 0 到 100 之间

. swappiness=0 告诉内核尽可能避免将进程从物理内存中移出

. swappiness=100 告诉内核积极地将进程从物理内存中移到交换缓存

Ubuntu 的默认设置是 swappiness=60。减小 swappiness 的默认值可能会改善典型的 Ubuntu 桌面安装的性能。建议设置 swappiness=10,但您可以随意进行实验。


开始使用交换空间,使用率为91%

输入图像描述由于我已配置了我的系统和虚拟机以使用90 %的内存。在90 %时没有发生交换

之后我打开了一些应用程序,如Firefox和Shutter,由于内存使用率超过90 %,开始进行交换


请注意,“swapoff -a”需要几分钟的时间才能完成,具体取决于您的交换空间使用情况。 - Adeel Ahmad

我找到了这个链接 Help.ubuntu.com Community: Swap FAQ。关于swapiness的部分是需要检查的重点。要从终端检查值,请输入以下命令。
cat /proc/sys/vm/swappiness

默认的桌面版本是60,我的也是。服务器是10。数值越高,交换空间使用得越积极。帮助FAQ解释了如何调整数值。
我有4G的RAM和交换空间,就像你的系统一样,从来没有注意到我的交换分区被使用过。

这是60。我不认为这是问题所在。 - Pwnna
请问你有看过上面列出的SwapFaq吗?建议将vm.swappiness修改为10。按照指示重新启动系统,然后监控swap情况。如果这样还不起作用,请回复我。同时,请提供vmstat的输出结果。 - peck
可能还需要一天或两天。 - Pwnna
没有帮助。在缓存增加和空闲减少之后,交换仍然增加。请查看vmstat的帖子。 - Pwnna

根据Gilles先生的建议,找出有问题的应用程序。如果你认为Xchat是问题所在,那么首先打开系统监视器,然后运行Xchat,检查内存使用情况。
额外修复。
sudo shutdown -rF now  [one time]

不知道现在是不是xchat。看编辑。 - Pwnna

注意:新答案,一些评论可能/确实是指之前错误的答案。
我所知道的唯一分析方法是通过smaps。
  1. 在系统监视器的进程列表中,注意一下使用大量内存的某个程序的ID。例如,在您的屏幕截图中,我们选择了Totem,ID为13414。
  2. 在控制台中输入:

    cat /proc/process_id/smaps > memory.txt
    

    以我们的示例为例:

    cat /proc/13414/smaps > memory.txt
    
  3. 现在,文件memory.txt包含了关于该程序如何使用内存的非常详细和长的报告。请将其发布到网络上的某个地方,以便我们可以查看。
我相信有一些库,很可能被多个程序共享,正在泄漏大量的系统内存。

这两个数字中哪一个是内存使用量?xchat占用了400MB?哦。 - Pwnna
1列被标记为USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND。VSZ是进程使用的虚拟内存大小;这通常比实际情况要大,因为它们包括在程序之间共享的页面(例如所有系统库),所以如果将它们全部加起来,会多次计算相同的内存页面。RSS是实际物理内存使用的大小,不包括被交换出去的页面。看到VSZ的增长比快照值更有用;我建议使用htop(该列在那里被称为VIRT)。 - Marius Gedminas
@Marius:评论不错,你能复制粘贴到问题的评论区吗?我的回答可能是错误的,看了系统监视器的截图,似乎所有程序都在使用过多的内存(可能是某个系统库泄漏),所以我想删除它,但是你的评论太有价值了。 - Javier Rivera
我有htop,并且它显示的内容与系统监视器的列相同。 - Pwnna
我已经发布了Smaps信息。 - Pwnna
我在那里找不到任何有趣的东西。大块的内存都是匿名分配的 :(. 共享脏页和共享干净页的值比我的电脑低,但我不知道为什么。希望有更多知识的人能够看一下它们。 - Javier Rivera
在启动我的XP虚拟机后,我突然意识到一件事情,这是自从安装了fgrlx以来我从未遇到过的(它解决了可切换图形、重启、关机和注销的问题)。之前,我的XP虚拟机会使用物理内存,现在它正在使用交换空间。那么这是否意味着fglrx有问题呢? - Pwnna

我在几个盒子上都遇到过这个问题。问题是一个bug,我无法追踪到它的来源。
我唯一找到的解决方法是先安装Ubuntu 10.04,然后升级到12.04,在这种情况下,这个bug神秘地不会出现。这个bug在11.10版本引入,并且在12.04版本中仍然存在。它只在干净安装时出现,而不是升级(包括使用光盘安装)。
以下是关于这个bug的launchpad报告:Bug 863552 所以,问题如下:内核某种方式没有释放缓存和缓冲区,而是将页面换入交换空间,而不是减少缓存。此外,swappiness参数完全无效。清除缓存可以帮助,但只能持续到缓存再次填满内存为止。

  • gksudo gedit /etc/sysctl.conf

  • 在最底部添加:vm.swappiness=10

  • 重新启动

  • cat /proc/sys/vm/swappiness会显示10

这是一个非常适合4GB内存的值。

(顺便说一下,在11.04版本中,我遇到了类似的RAM问题,我知道有一个程序叫Lernid,它没有关闭所有相关的进程。Xchat运行良好,Chromium占用大量内存,但关闭程序后应该释放内存.....)


1你的陈述与之前的回答完全相同。请在发布时记住这一点 - 如果其他人已经给出了你想要给出的相同答案,请不要再重复陈述你的答案,只需给予对方的回答点赞即可(当然,前提是答案相同)。 - Thomas Ward