1、什么是交换分区
交换分区的功能就是在内存不够的情况下,操作系统先把内存中暂时不用的数据,存到硬盘的交换空间,
腾出内存来让别的程序运行,和windows的虚拟内存(pagefile.sys)的作用是一样的。
2、关于swap交换分区的设置
一种流行的、以讹传讹的说法是,安装linux系统时,交换分区swap的大小应该是内存的两倍。
也就是说,如果内存是2g,那么就应该分出4g的硬盘空间作为交换空间,其实这是严重的浪费。
真实的情况是:可以根据你系统内存的大小,以及所使用的程序,自行决定交换分区的大小,甚至可以完全不用交换分区!
做一个假设:如果你的内存足够大,极少出现内存不足的情况,那么你就不需要交换分区。事实上,日常使用很少能用完全部的内存。
在用不完内存容量的情况下,还要划出它两倍的硬盘空间用于内存交换,这不是浪费吗?
可以说,在你内存基本够用的情况下,完全可以不要交换空间。在windows下也是一样,在系统属性中,把虚拟内存设置为0,系统依然运行的很好。
当然,如果你用的是服务器,还是要有专门的虚拟内存,有备无患。但是虚拟内存的大小不一定非要内存的两倍。
3、查看swap 空间大小(总计)
[root@localhost swap]# free -m ;-m表示单位为mb,默认单位为kb(-k);此外还有byte(-b)和gb(-g) total used free shared buffers cached mem: 1893 720 1172 0 111 495 ;该行显示了从系统角度看来内存使用的情况, total是系统可用的内存大小, 数量上等于系统物理内存减去内核保留的内存 -/ buffers/cache: 113 1780 ;从用户角度显示内存信息, 可用内存从数量上等于mem行used列值减去buffers和cached内存的大小. swap: 2015 0 2015 ;swap空间的大小
4、查看swap 空间(file(s)/partition(s))
[root@localhost swap]# swapon -s ;等价于 cat /proc/swaps ,包括 文件 和 分区 的详细信息 filename type size used priority /dev/sda3 partition 2064376 0 -1
5、添加交换空间
linux下可以创建两种类型的交换空间,一种是swap分区,一种是swap文件。
前者适合有空闲的分区可以使用,后者适合于没有空的硬盘分区,硬盘的空间都已经分配完毕。
推荐你添加一个交换分区;不过,若你没有多少空闲空间可用,则添加交换文件。
5.1、添加一个交换分区
1、使用fdisk来创建交换分区(假设 /dev/sdb2 是创建的交换分区) 2、 使用 mkswap 命令来设置交换分区: # mkswap /dev/sdb2 3、启用交换分区: # swapon /dev/sdb2 4、写入/etc/fstab,以便在引导时启用: /dev/sdb2 swap swap defaults 0 0
5.2、添加一个交换文件
1、创建大小为512m的交换文件: # dd if=/dev/zero of=/swapfile1 bs=1024k count=512 2、使用 mkswap 命令来设置交换文件: # mkswap /swapfile1 3、启用交换分区: # swapon /swapfile1 4、写入/etc/fstab,以便在引导时启用: /swapfile1 swap swap defaults 0 0 新添了交换分区并启用它之后,请查看 cat /proc/swaps 或 free 命令的输出来确保交换分区已被启用了。
6、删除交换空间
1、禁用交换分区: # swapoff /dev/sdb2 2、从 /etc/fstab 中删除项目; 3、使用fdisk或yast工具删除分区。 删除交换文件步骤同上。