注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

谷搜互联网应用www.iguso.com

谷搜专注企业邮箱十二年

 
 
 

日志

 
 

记忆体置换空间(swap)的建置  

2014-05-16 09:36:46|  分类: 默认分类 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

在安装 Linux 前常常会被告诉安装一定需要的两个 partition 啰! 一个是根目录,另外一个就是 swap(记忆体置换空间)。关于记忆体置换空间的解释在第四章安装 Linux 内的磁碟分割时有约略提过, swap 的功能就是在应付实体记忆体不足的情况下所造成的记忆体延伸记录的功能。

  一般来说,如果硬体的配备足够的话,那么 swap 应该不会被我们的系统所使用到, swap 会被利用到的时刻通常就是实体记忆体不足的情况了。从第零章的计算机概论当中,我们知道 CPU 所读取的资料都来自于记忆体, 那当记忆体不足的时候,为了让后续的程式可以顺利的运作,因此在记忆体中暂不使用的程式与资料就会被挪到 swap 中了。 此时记忆体就会空出来给需要执行的程式载入。由于 swap 是用硬碟来暂时放置记忆体中的资讯, 所以用到 swap 时,你的主机硬碟灯就会开始闪个不停啊!

  虽然目前(2009)主机的记忆体都很大,至少都有 1GB 以上啰!因此在个人使用上你不要设定 swap 应该也没有什么太大的问题。 不过伺服器可就不这么想了~由于你不会知道何时会有大量来自网路的要求,因此你最好能够预留一些 swap 来缓衝一下系统的记忆体用量! 至少达到『备而不用』的地步啊!

  现在想像一个情况,你已经将系统建立起来了,此时却才发现你没有建置 swap ~那该如何是好呢? 透过本章上面谈到的方法,你可以使用如下的方式来建立你的 swap 啰!

  设定一个 swap partition

  建立一个虚拟记忆体的档案

  不啰唆,就立刻来处理处理吧!

  使用实体分割槽建置swap

  建立 swap 分割槽的方式也是非常的简单的!透过底下几个步骤就搞定啰:

  分割:先使用 fdisk 在你的磁碟中分割出一个分割槽给系统作为 swap 。由于 Linux 的 fdisk 预设会将分割槽的 ID 设定为 Linux 的档案系统,所以你可能还得要设定一下 system ID 就是了。

  格式化:利用建立 swap 格式的『mkswap 装置档名』就能够格式化该分割槽成为 swap 格式啰

  使用:最后将该 swap 装置启动,方法为:『swapon 装置档名』。

  观察:最终透过 free 这个指令来观察一下记忆体的用量吧!

  不啰唆,立刻来实作看看!既然我们还有多余的磁碟容量可以分割,那么让我们继续分割出 256MB 的磁碟分割槽吧! 然后将这个磁碟分割槽做成 swap 吧!

  1. 先进行分割的行为啰!

  [root@www ~]# fdisk /dev/hdc

  Command (m for help): n

  First cylinder (2303-5005, default 2303): <==这裡按[enter]

  Using default value 2303

  Last cylinder or +size or +sizeM or +sizeK (2303-5005, default 5005): +256M

  Command (m for help): p

  Device Boot Start End Blocks Id System

  .....中间省略.....

  /dev/hdc6 2053 2302 2008093+ 83 Linux

  /dev/hdc7 2303 2334 257008+ 83 Linux <==新增的项目

  Command (m for help): t <==修改系统 ID

  Partition number (1-7): 7 <==从上结果看到的,七号partition

  Hex code (type L to list codes): 82 <==改成 swap 的 ID

  Changed system type of partition 7 to 82 (Linux swap / Solaris)

美国主机空间,海外主机空间

  Command (m for help): p

  Device Boot Start End Blocks Id System

  .....中间省略.....

  /dev/hdc6 2053 2302 2008093+ 83 Linux

  /dev/hdc7 2303 2334 257008+ 82 Linux swap / Solaris

  Command (m for help): w

  # 此时就将 partition table 更新了!

  [root@www ~]# partprobe

  # 这个玩意儿很重要的啦!不要忘记让核心更新 partition table 喔!

  2. 开始建置 swap 格式

  [root@www ~]# mkswap /dev/hdc7

  Setting up swapspace version 1, size = 263172 kB <==非常快速!

  3. 开始观察与载入看看吧!

  [root@www ~]# free

  total used free shared buffers cached

  Mem: 742664 684592 58072 0 43820 497144

  -/+ buffers/cache: 143628 599036

  Swap: 1020088 96 1019992

  # 我有 742664K 的实体记忆体,使用 684592K 剩余 58072K ,使用掉的记忆体有

  # 43820K / 497144K 用在缓衝/快取的用途中。

  # 至于 swap 已经存在了 1020088K 啰!这样会看了吧?!

  [root@www ~]# swapon /dev/hdc7

  [root@www ~]# free

  total used free shared buffers cached

  Mem: 742664 684712 57952 0 43872 497180

  -/+ buffers/cache: 143660 599004

  Swap: 1277088 96 1276992 <==有增加啰!看到否?

  [root@www ~]# swapon -s

  Filename Type Size Used Priority

  /dev/hdc5 partition 1020088 96 -1

  /dev/hdc7 partition 257000 0 -2

  # 上面列出目前使用的 swap 装置有哪些的意思!

  使用档案建置swap

  如果是在实体分割槽无法支援的环境下,此时前一小节提到的 loop 装置建置方法就派的上用场啦! 与实体分割槽不一样的只是利用 dd 去建置一个大档案而已。多说无益,我们就再透过档案建置的方法建立一个 128 MB 的记忆体置换空间吧!

  1. 使用 dd 这个指令来新增一个 128MB 的档案在 /tmp 底下:

  [root@www ~]# dd if=/dev/zero of=/tmp/swap bs=1M count=128

  128+0 records in

  128+0 records out

  134217728 bytes (134 MB) copied, 1.7066 seconds, 78.6 MB/s

  [root@www ~]# ll -h /tmp/swap

  -rw-r--r-- 1 root root 128M Oct 28 15:33 /tmp/swap

  这样一个 128MB 的档案就建置妥当。若忘记上述的各项参数的意义,请回前一小节查阅一下啰!

  2. 使用 mkswap 将 /tmp/swap 这个档案格式化为 swap 的档案格式:

  [root@www ~]# mkswap /tmp/swap

  Setting up swapspace version 1, size = 134213 kB

  # 这个指令下达时请『特别小心』,因为下错字元控制,将可能使您的档案系统挂掉!

  3. 使用 swapon 来将 /tmp/swap 启动啰!

  [root@www ~]# free

  total used free shared buffers cached

  Mem: 742664 450860 291804 0 45584 261284

  -/+ buffers/cache: 143992 598672

  Swap: 1277088 96 1276992

  [root@www ~]# swapon /tmp/swap

  [root@www ~]# free

  total used free shared buffers cached

  Mem: 742664 450860 291804 0 45604 261284

  -/+ buffers/cache: 143972 598692

  Swap: 1408152 96 1408056

  [root@www ~]# swapon -s

  Filename Type Size Used Priority

  /dev/hdc5 partition 1020088 96 -1

  /dev/hdc7 partition 257000 0 -2

  /tmp/swap file 131064 0 -3

  4. 使用 swapoff 关掉 swap file

  [root@www ~]# swapoff /tmp/swap

  [root@www ~]# swapoff /dev/hdc7

  [root@www ~]# free

  total used free shared buffers cached

  Mem: 742664 450860 291804 0 45660 261284

  -/+ buffers/cache: 143916 598748

  Swap: 1020088 96 1019992 <==回復成最塬始的样子了!

  swap使用上的限制

  说实话,swap 在目前的桌上型电脑来讲,存在的意义已经不大了!这是因为目前的 x86 主机所含的记忆体实在都太大了 (一般入门级至少也都有 512MB 了),所以,我们的 Linux 系统大概都用不到 swap 这个玩意儿的。不过, 如果是针对伺服器或者是工作站这些常年上线的系统来说的话,那么,无论如何,swap 还是需要建立的。

  因为 swap 主要的功能是当实体记忆体不够时,则某些在记忆体当中所佔的程式会暂时被移动到 swap 当中,让实体记忆体可以被需要的程式来使用。另外,如果你的主机支援电源管理模式, 也就是说,你的 Linux 主机系统可以进入『休眠』模式的话,那么, 运作当中的程式状态则会被纪录到 swap 去,以作为『唤醒』主机的状态依据! 另外,有某些程式在运作时,本来就会利用 swap 的特性来存放一些资料段, 所以, swap 来是需要建立的!只是不需要太大!

  不过, swap 在被建立时,是有限制的喔!

  在核心 2.4.10 版本以后,单一 swap 量已经没有 2GB 的限制了,

  但是,最多还是仅能建立到 32 个 swap 的数量!

  而且,由于目前 x86_64 (64位元) 最大记忆体定址到 64GB, 因此, swap 总量最大也是仅能达 64GB 就是了!


文章源自谷搜企业邮箱服务商 记忆体置换空间(swap)的建置
  评论这张
 
阅读(10)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017