分类: LINUX
2012-12-26 21:47:21
SWAP就是LINUX下的虚拟内存分区,它的作用是在物理内存使用完之后,将磁盘空间(也就是SWAP分区)虚拟成内存来使用。
它和Windows系统的交换文件作用类似,但是它是一段连续的磁盘空间,并且对用户不可见。
需要注意的是,虽然这个SWAP分区能够作为"虚拟"的内存,但它的速度比物理内存可是慢多了,因此如果需要更快的速度的话,并不能寄厚望于SWAP,最好的办法仍然是加大物理内存。SWAP分区只是临时的解决办法.
交换分区(swap)的合理值一般在内存的2倍左右?
一种流行的、以讹传讹的说法是,安装Linux系统时,交换分区swap的大小应该是内存的两倍。也就是说,如果内存是2G,那么就应该分出4G的硬盘空间作为交换空间。其实这是严重的浪费。真实的情况是:可以根据你系统内存的大小,以及所使用的程序,自行决定交换分区的大小,甚至可以完全不用交换分区!
----------------------------------------------------------------------------------------------
1、查看swap的空间大小
[jonny@localhost ~]$ free -m
total used free shared buffers cached
Mem: 998 977 20 0 0 53
-/+ buffers/cache: 922 75
Swap: 2015 7 2008
Mem行显示了从系统角度看来内存使用的情况, total是系统可用的内存大小,数量上等于系统物理内存减去内核保留的内存。
buffers和cached是系统用做缓冲的内存。buffers与某个块设备关联,包含了文件系统元数据,并且跟踪了块的变化。cache只包含了文件本身。
-/+ buffers/cache行则从用户角度显示内存信息,可用内存从数量上等于mem行used列值减去buffers和cached内存的大小。
因为buffers和cached是操作系统为加快系统运行而设置的,当用户需要时, 可以只接为用户使用。
Swap行便是系统的swap信息。
在日常应用中,通过上述命令看到交换空间的使用情况为0,那么你就不需要很大的虚拟内存,甚至可以完全不需要另辟硬盘空间作为虚拟内存。那么,万一有一天你需要了呢,难道要重装系统?大可不必,在Linux下虚拟内存不单可以放在单独的交换分区,也可以是一个在正常分区下的交换文件。
2、查看swap 空间(file(s)/partition(s)):
包括文件和分区的详细信息
# swapon -s
等价于
# cat /proc/swap
[jonny@localhost ~]$ cat /proc/swaps
Filename Type Size Used Priority
/dev/sda3 partition 2064344 126768 -1
[jonny@localhost ~]$ swapon -s
Filename Type Size Used Priority
/dev/sda3 partition 2064344 126768 -1
3、添加交换空间
两种选择:添加一个交换分区或添加一个交换文件。推荐你添加一个交换分区;不过,若你没有多少空闲空间可用,则添加交换文件。
3.1 添加一个交换分区
步骤如下:
a 使用fdisk来创建交换分区(假设 /dev/sdb2 是创建的交换分区)
b 使用 mkswap 命令来设置交换分区:
# mkswap /dev/sdb2
c 启用交换分区:
# swapon /dev/sdb2
d 写入/etc/fstab,以便在引导时启用:
/dev/sdb2 swap swap defaults 0 0
3.2 添加一个交换文件
a 创建大小为512M的交换文件:
# dd if=/dev/zero of=/swapfile1 bs=1024k count=512
b 使用 mkswap 命令来设置交换文件:
# mkswap /swapfile1
c 启用交换分区:
# swapon /swapfile1
d 写入/etc/fstab,以便在引导时启用:
/swapfile1 swap swap defaults 0 0
新添了交换分区并启用它之后,请查看 cat /proc/swaps 或 free 命令的输出来确保交换分区已被启用了。
4、删除交换空间:
a 禁用交换分区:
# swapoff /dev/sdb2
b 从 /etc/fstab 中删除项目;
c 使用fdisk或yast工具删除分区。
删除交换文件步骤同上。
http://blog.sina.com.cn/s/blog_4cc16fc50100dwur.html
第一种方法:新建分区
1、fdisk /dev/sda
2、n 新建一个分区,新建分区要求硬盘上还有空闲空间可用。
注意:分出一个区做为交换分区,分区类型应为primary,extend不能做为交换分区。
3、t 修改该分区的类型为交换分区(交换分区id为82)
4、w 保存分区表
5、使更改后的分区表立即生效 partprobe
6、将sda5分区格式化为交换分区 mkswap /dev/sda5
7、查看交换分区大小 free
8、挂载交换分区 swapon /dev/sda5
9、用free命令查看新的交换分区大小,发现交换分区已经增加了。
10、卸载交换分区:swapoff /dev/sda5
第二种方法:建立虚拟内存文件
1、创建512M的空文件 dd if=/dev/zero of=/tmp/swap1 bs=1M count=512
2、格式化为交换分区 mkswap /tmp/swap1
3、查看交换分区大小 free
4、挂载交换分区 swapon /tmp/swap1
如果要去掉新增加的swap文件,使用 swapoff /tmp/swap1即可。