在安装Linux操作系统的时候,为什么要建立交换分区

在安装Linux操作系统的时候,为什么要建立交换分区
2024-10-30 21:21:27
推荐回答(5个)
回答1:

当系统的物理内存不够用的时候,就需要将物理内存中的一部分空间释放出来,以供当前运行的程序使用。那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间被临时保存到Swap空间中,等到那些程序要运行时,再从Swap中恢复保存的数据到内存中。这样,系统总是在物理内存不够时,才进行Swap交换。
这个是SWAP 交换分区的作用。 实际上,我们更关注的应该是SWAP分区的大小问题。 设置多大才是最优的。
一般来说可以按照如下规则设置swap大小:
4G以内的物理内存,SWAP 设置为内存的2倍。
4-8G的物理内存,SWAP 等于内存大小。
8-64G 的物理内存,SWAP 设置为8G。
64-256G物理内存,SWAP 设置为16G。
实际上,系统中交换分区的大小并不取决于物理内存的量,而是取决于系统中内存的负荷,所以在安装系统时要根据具体的业务来设置SWAP的值。
系统在什么情况下才会使用SWAP?
实际上,并不是等所有的物理内存都消耗完毕之后,才去使用swap的空间,什么时候使用是由swappiness 参数值控制。
[root@rhce ~]# cat /proc/sys/vm/swappiness
60
该值默认值是60.
swappiness=0的时候表示最大限度使用物理内存,然后才是 swap空间,
swappiness=100的时候表示积极的使用swap分区,并且把内存上的数据及时的搬运到swap空间里面。
现在服务器的内存动不动就是上百G,所以我们可以把这个参数值设置的低一些,让操作系统尽可能的使用物理内存,降低系统对swap的使用,从而提高系统的性能。
如何修改swappiness参数?
--临时性修改:
[root@rhce ~]# sysctl vm.swappiness=10
vm.swappiness = 10
[root@rhce ~]# cat /proc/sys/vm/swappiness
10
这里我们的修改已经生效,但是如果我们重启了系统,又会变成60.
--永久修改:
在/etc/sysctl.conf 文件里添加如下参数:
vm.swappiness=10
或者:
[root@rhce ~]# echo 'vm.swappiness=10' >>/etc/sysctl.conf

保存,重启,就生效了。

回答2:

交换分区相当于windows的虚拟内存,不过大小只需要物理内存的1.5-2倍左右就可以了。

一般来说内存有1-2G可以不建交换分区,至少我用笔记本装Linux,带桌面,交换分区用量也只是十几M左右,基本没用到。不过一般还是建了好。

要是分区不够或者不想浪费硬盘,可以不分,到真的不够交换区用就用页面文件好了(像windows的虚拟内存,但不是用分区,而是用文件,作用与交换分区一样)

页面文件的制作和使用很简单,自已去查资料。这里简要提一下步骤:
1.用dd命令生成一个合适大小的文件
2.把这个文件格式化成swap分区(没错,可以格式化文件;若格式化不了,把它挂载到loop设备再格)
3.用swapon命令对文件启用交换管理,也可以用它查看交换分区和交换页面文件使用量

回答3:

把硬盘一部分空间用来当内存,这相当于windows操作系统中虚拟内存的作用。

回答4:

swap相当于windows的虚拟内存,如果没有,系统运行时如果内存不足就会出问题。

回答5:

当你的内存里有些东西长期用不上,就有可能先放到交换分区里,腾出更多的内存空间给需要的程序使用。这样的机制在现在的操作系统中普遍使用。