怎么建立swap (swap虚拟内存)

从装系统时就接触过这个swap了, 它类似与windows的虚拟内存, 分区的时候一般大小为内存的2倍, 如果你的内存超过8G, 那么你分16G似乎是没有必要了。分16G足够日常交换了。

然而, 还会有虚拟内存不够用的情况发生。如果真遇到了, 莫非还要重新给磁盘分区? 当然不能, 那我们就增加一个虚拟的磁盘出来。

基本的思路就是:建立swapfile -> 格式化为swap格式 -> 启用该虚拟磁盘。

建立swapfile

> # dd if=/dev/zero of=/tmp/newdisk bs=4k count=102400

102400+0 records in

102400+0 records out

419430400 bytes (419 MB) copied, 1.75058 s, 240 MB/s

"if" 指定源, 基本上除了 "/dev/zero" 外基本上不会写别的, 而/dev/zero 是UNIX系统特有的一个文件, 它可以提供源源不断的 "0", 关于它的其他信息请你在网上查一下资料。

"of" 指定目标文件, "bs" 定义块的大小, "count" 定义块的数量, 这两个参数的多少决定了目标文件的大小。

格式化成swap格式:

> # mkswap -f /tmp/newdisk

Setting up swapspace version 1, size = 409596 KiB

no label, UUID=daa583cd-c431-4925-8fa7-12da5d9a7057

启用该虚拟磁盘:

> # free -m

total used free shared buffers cached

Mem: 996 913 82 0 105 667

-/+ buffers/cache: 140 855

Swap: 0 0 0

[root@VM_228_47_centos ~]#

> # swapon /tmp/newdisk

> # free -m

total used free shared buffers cached

Mem: 996 926 69 0 105 669

-/+ buffers/cache: 151 844

Swap: 399 0 399

前后对比swap分区多了399M空间。其中 "free" 这个命令用来查看内存使用情况, "-m" 表示以M为单位显示