今天忽然发现我的swap没有使用,如何检查swap的使用情况呢。
[root@node5 ~]# free -m
total used free shared buffers cached
Mem: 249 219 30 0 55 63
-/+ buffers/cache: 100 149
Swap: 2047 136 1910
或者
[root@node5 ~]# swapon -s
Filename Type Size Used Priority
/dev/hda2 partition 2096472 139936 -1
或者
[root@node5 ~]# cat /proc/swaps
Filename Type Size Used Priority
/dev/hda2 partition 2096472 139936 -1
第一种如果发现swap的total used free全为0 说明swap没有使用
第二种和第三种如果全为空,说明swap没有使用。
当我发现swap没有使用的时候,我确实为swap分区了,为什么没有使用呢,然后我检查了下分区挂载表/etc/fstab,发现这样一行:
LABEL=SW-sda7 swap swap defaults 0 0
这行说明开机的时候,系统确实试图使用了swap分区,但为什么swap没有起来呢,从这几个参数,很容易发现最优可能出现问题的是LABEL,那下一步检查swap的LABEL:
[root@SER29 ~]# blkid -t TYPE=swap
/dev/cciss/c0d0p6: LABEL="SW-cciss/c0d0p6" TYPE="swap"
我们发现swap的LABEL是SW-cciss/c0d0p6而不是SW-sda7,我们要做的就是把fstab改成正确的方式,用下面的这行替换上面的错误行:
LABEL=SW-cciss/c0d0p6 swap swap defaults 0 0
当我们改成正确方式后,如果我们要使用swap,只要执行swapon -av就会读取正确的fstab,启用swap了。
有时候我们使用free查看内存使用的情况,会看到如下的显示:
[root@SER29 ~]# free -m
total used free shared buffers cached
Mem: 12172 10682 1490 0 201 7441
-/+ buffers/cache: 3039 9133
Swap: 8191 0 8191
我们看到系统总的内存为12G,使用了10G,swap分配了8G,没有使用,那是不是系统的内存不够用了呢,是否是内存过高的情况呢?
实际上swap没有使用,说明系统的内存完全够用,其实used显示的数值包括两个部分,一个是系统真实使用的物理内存和buffers cached,其中 真实使用的物理内存=used - buffers - cached,这里我们的物理内存使用为3040兆,也就是说还有9G的物理内存可以使用。
阅读(22446) | 评论(11) | 转发(1) |