Linux中Swap空间的管理知识讲解

运维 系统运维
Swap空间是分页的,每一页的大小和内存页的大小一样,方便Swap空间和内存之间的数据交换。是要防止Swap空间中有坏块。

经常看到有些Linux(国内汉化版)安装手册上有这样的说明:Swap空间不能超过128M。为什么会有这种说法?在说明“128M”这个数字的来历之前,先给问题一个回答:现在根本不存在128M的限制!现在的限制是2G!

Swap空间是分页的,每一页的大小和内存页的大小一样,方便Swap空间和内存之间的数据交换。旧版本的Linux实现Swap空间时,用Swap空间的***页作为所有Swap空间页的一个“位映射”(Bit map)。这就是说***页的每一位,都对应着一页Swap空间。如果这一位是1,表示此页Swap可用;如果是0,表示此页是坏块,不能使用。

这么说来,***个Swap映射位应该是0,因为,***页Swap是映射页。另外,***10个映射位也被占用,用来表示Swap的版本(原来的版本是Swap_space ,现在的版本是swapspace2)。

那么,如果说一页的大小为s,这种Swap的实现方法共能管理“8 * ( s - 10 ) - 1”个Swap页。对于i386系统来说s=4096,则空间大小共为133890048,如果认为1 MB=2^20 Byte的话,大小正好为128M。

之所以这样来实现Swap空间的管理,是要防止Swap空间中有坏块。如果系统检查到Swap中有坏块,则在相应的位映射上标记上0,表示此页不可用。这样在使用Swap时,不至于用到坏块,而使系统产生错误。

现在的系统设计者认为:

1.现在硬盘质量很好,坏块很少。

2.就算有,也不多,只需要将坏块罗列出来,而不需要为每一页建立映射。

3.如果有很多坏块,就不应该将此硬盘作为Swap空间使用。 于是,现在的Linux取消了位映射的方法,也就取消了128M的限制。直接用地址访问,限制为2G。

【编辑推荐】

  1. 关于基础的Swap分区知识讲解
  2. linux关于swap分区的划分规则
  3. 关于2G虚拟内存Linux swap限制的说明
  4. 学习手动扩展SWaP分区大小方法
  5. 创建SWaP文件调整SWaP容量
责任编辑:小霞
相关推荐

2013-10-11 14:51:16

Linux进程管理

2016-01-13 09:19:27

2010-05-24 12:38:41

Swap分区

2020-05-12 09:31:59

网络管理Linux操作系统

2012-11-05 11:32:42

项目管理知识管理IT人员

2010-05-26 10:32:47

SVN管理

2009-12-25 15:24:16

内存管理

2010-05-24 13:46:26

Swap文件

2017-01-18 22:16:47

Linux交换空间优缺点

2010-05-24 09:11:24

swap空间

2010-04-30 10:59:11

Unix Swap

2010-04-23 16:51:44

Aix ACL

2010-11-01 01:56:29

NTFS文件系统

2024-01-08 08:42:43

2009-10-22 13:06:00

Linux磁盘管理

2010-05-24 13:22:37

Swap空间

2019-09-24 08:56:00

内存Redis使用

2010-05-06 09:26:44

Unix系统

2014-08-08 09:56:28

LinuxSwap分区

2017-08-15 11:00:33

LinuxSwap
点赞
收藏

51CTO技术栈公众号