你的位置:首页 > 软件开发 > 操作系统 > linux swap交换空间

linux swap交换空间

发布时间:2015-10-15 23:00:03
linux内存通过 virtual memory 虚拟内存来管理整个内存, physical RAM物理内存和swap交换空间即为virtual memory总量。swap的使用场景swap主要有两个用处1、当系统需要比物理内存更多的内存空间的时候,内核会把内存里边用得比 ...

linux内存通过 virtual memory 虚拟内存来管理整个内存, physical RAM物理内存和swap交换空间即为virtual memory总量。

swap的使用场景

swap主要有两个用处

1、当系统需要比物理内存更多的内存空间的时候,内核会把内存里边用得比较少的内存页面swap out到交换分区,以空出物理内存给当前应用来快速运行。

2、某些应用启动的时候初始化但是随后的应用运行期间不再使用的内存页面,系统会把这部分页面也swap out到交换空间,以留出物理内存页面给其他应用或者磁盘缓存。

 

linux的这种内存管理策略主要用来节约物理内存,提升当前应用的执行速度。但是swap不能当做扩充内存的一个手段,因为swap读写属于磁盘io,要比物理内存的io慢得多。

如果系统频繁的swap out内存页面到交换分区,随后又swap in交换分区到内存页面,这说明系统在寻找空闲内存来是多个应用同时运行,也就是说当前系统任务比较繁忙,但是可用内存又不足了,这时候唯一的办法只能通过提高物理内存来解决。

因此衡量一个系统内存用量是否到了瓶颈,就可以通过观察swap用量和si so的频率来评估。

 

生成swap

swap空间有两种形式:一是交换分区,二是交换文件。总之对它的读写都是磁盘操作。

1、交换分区

交换分区可以在安装操作系统的时候分配,也可以进入系统后用fdisk来划分一个交换分区

比如在磁盘上划分一个/dev/sda5分区,然后标记为交换分区。

然后使用mkswap命令在该分区上面建立交换分区文件系统:

mkswap /dev/sda5

最后激活交换分区:

swapon /dev/sda5

 

2、交换文件

交换空间也可以是文件,只需要用dd命令在磁盘上建立分配了大小的文件/home/swapfile

建立交换分区文件系统

mkswap /home/swapfile

最后激活它

swapon /home/swapfile

 

swap空间大小的分配策略

swap空间大小的分配众说纷纭,有说物理内存两倍的,有说物理内存一样大小的,也有说物理内存一半的。在不同场景下,这些说法应该都是对的。(因此拿一个绝对说法当面试题的,考官可能也不真正的懂swap)

下面是红帽系的分配策略:

Swap should equal 2x physical RAM for up to 2 GB of physical RAM, and then an additional 1x physical RAM for any amount above 2 GB, but never less than 32 MB.

 

So, if:

M = Amount of RAM in GB, and S = Amount of swap in GB, then

If M < 2	S = M *2Else	S = M + 2


原标题:linux swap交换空间

关键词:linux

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

可能感兴趣文章

我的浏览记录