转自:Linux Swap交换分区设置

对swap分区的误解

一种流行的、以讹传讹的说法是,安装Linux系统时,交换分区swap的大小应该是内存的两倍。也就是说,如果内存是2G,那么就应该分出4G的硬盘空间作为交换空间。其实这是严重的浪费。

真实的情况是:可以根据你系统内存的大小,以及所使用的程序,自行决定交换分区的大小,甚至可以完全不用交换分区!

什么是swap分区

swap分区功能是在内存不够的情况下,OS先把内存中暂时不用的数据,存到硬盘的交换空间,腾出内存来让别的程序运行,和Windows的虚拟内存(pagefile.sys)的作用是一样的。

一定要有swap分区吗?

做一个假设:如果你的内存足够大,极少出现内存不足的情况,那么你就不需要swap分区。事实上,这种可能性是完全存在的。现在玩《绝地求生》电脑最少都是16G起步了。日常使用的话,很少能用完全部的内存。在用不完内存容量的情况下,还要划出它两倍的硬盘空间用于内存交换,这不是浪费吗?
可以说,在你内存基本够用的情况下,完全可以不要交换空间。在Windows下也是一样,在系统属性中,把虚拟内存设置为0,系统依然运行的很好。当然,如果你用的是服务器,为了避免业务高峰带来的资源紧张,还是要有专门的虚拟内存,有备无患。但是虚拟内存的大小不一定非要内存的两倍。

查看swap分区

那么怎么知道你的系统有没有用到交换空间呢?只需要在root用户下,运行下面的命令就可以知道了。
free -m
在日常应用中,通过上述命令看到交换空间的使用情况为0,那么你就不需要很大的虚拟内存,甚至可以完全不需要另辟硬盘空间作为虚拟内存。那么,万一有一天你需要了呢,难道要重装系统?大可不必,在Linux下虚拟内存不单可以放在单独的交换分区,也可以是一个在正常分区下的交换文件。

查看swap 空间大小(总计):

[root@localhost ~]# free -m
              total        used        free      shared  buff/cache   available
Mem:           1982         141        1694           8         146        1668
Swap:          2047           0        2047
[root@localhost ~]# free -mh
              total        used        free      shared  buff/cache   available
Mem:           1.9G        141M        1.7G        8.5M        146M        1.6G
Swap:          2.0G          0B        2.0G
View Code

相关文章: