Linux系统添加swap分区教程介绍
什么是交换内存(swap)?
虚拟内存是计算机系统内存管理的一种技术。它使得应用程序认为它拥有连续的可用的内存(一个连续完整的地址空间),而实际上,它通常是被分隔成多个物理内存碎片,还有部分暂时存储在外部磁盘存储器上,在需要时进行数据交换。与没有使用虚拟内存技术的系统相比,使用这种技术的系统使得大型程序的编写变得更容易,对真正的物理内存(例如RAM)的使用也更有效率。
VirtualMem01.png
注意:虚拟内存不只是“用磁盘空间来扩展物理内存”的意思——这只是扩充内存级别以使其包含硬盘驱动器而已。把内存扩展到磁盘只是使用虚拟内存技术的一个结果,它的作用也可以通过覆盖或者把处于不活动状态的程序以及它们的数据全部交换到磁盘上等方式来实现。对虚拟内存的定义是基于对地址空间的重定义的,即把地址空间定义为“连续的虚拟内存地址”,以借此“欺骗”程序,使它们以为自己正在使用一大块的“连续”地址。
swap分区合适大小?
swap分区并不是越大越好,一般有这么几点建议这样子确定其大小:(1)( 内存大小 + Swap分区大小 ) * 80%或70% = 程序需要占用总内存数;(2)swap空间应大于或等于物理内存的大小,最小不应小于64M,通常swap空间的大小可以是物理内存的2-2.5倍。比如你的内存已经达到4G,其大小可以等于或小于4G,但一些软件(如oracle数据库)可能对此要求的大小不一样。
如何创建swap和设置?
[root@iifocus ~]# free -m
total used free shared buffers cached
Mem: 490 448 42 27 16 215
-/+ buffers/cache: 216 273
Swap: 0 0 0
[root@iifocus ~]# mkdir /data
[root@iiocus ~]# dd if=/dev/zero of=/data/swapfile bs=1M count=1024
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 1.51878 s, 707 MB/s
[root@iifocus ~]# mkswap /data/swapfile ##创建交换分区
[root@iifocus ~]# swapon /data/swapfile ##激活交换分区
[root@iifocus ~]# chmod 0600 /data/swapfile ##出于安全考虑,设置权限
[root@iifocus ~]# free -m
total used free shared buffers cached
Mem: 490 453 36 4 10 360
-/+ buffers/cache: 82 407
Swap: 1023 0 1023
[root@iifocus ~]# swapoff /data/swapfile #关闭添加的交换分区
以下上添加swap交换分区的操作可以实时生效,但系统重启之后继续生效则必须修改/etc/fstab,追加以下内容:/data/swapfile none swap sw 0 0
[root@iifocus ~]# echo '/data/swapfile none swap sw 0 0'>>/etc/fstab