`

第八章 内存置换空间(swap)之建置

 
阅读更多
还记得在安装 Linux 之前大家常常会告诉你的话吧!就是安装时一定需要的两个 partition 啰! 一个是根目录,另外一个就是 swap(内存置换空间)。关于内存置换空间的解释在第四章安装 Linux 内的磁盘分区时有约略提过, swap 的功能就是在应付物理内存不足的情况下所造成的内存延伸记录的功能。

一般来说,如果硬件的配备足够的话,那么 swap 应该不会被我们的系统所使用到, swap 会被利用到的时刻通常就是物理内存不足的情况了。从第零章的计算器概论当中,我们知道 CPU 所读取的数据都来自于内存, 那当内存不足的时候,为了让后续的程序可以顺利的运行,因此在内存中暂不使用的程序与数据就会被挪到 swap 中了。 此时内存就会空出来给需要运行的程序加载。由于 swap 是用硬盘来暂时放置内存中的信息, 所以用到 swap 时,你的主机硬盘灯就会开始闪个不停啊!

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

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

A 配置一个 swap partition
B 创建一个虚拟内存的文件

使用实体分割槽建置swap

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

1.分割:先使用 fdisk 在你的磁盘中分割出一个分割槽给系统作为 swap 。由于 Linux 的 fdisk 默认会将分割槽的 ID 配置为 Linux 的文件系统,所以你可能还得要配置一下 system ID 就是了。
2.格式化:利用创建 swap 格式的『mkswap 装置文件名』就能够格式化该分割槽成为 swap 格式啰
3.使用:最后将该 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 在被创建时,是有限制的喔!

1.在核心 2.4.10 版本以后,单一 swap 量已经没有 2GB 的限制了,
但是,最多还是仅能创建到 32 个 swap 的数量!
2.而且,由于目前 x86_64 (64位) 最大内存寻址到 64GB, 因此, swap 总量最大也是仅能达 64GB 就是了!



转自:http://vbird.dic.ksu.edu.tw/linux_basic/0230filesystem_5.php
分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    centos清理swap交换区内存

    SWAP空间(或称为SWAP分区)是在硬盘上预留的一块区域,用于当物理内存(RAM)不足时,操作系统可以将一部分暂时不用的数据移到SWAP空间中,从而释放出更多的物理内存供其他程序使用。这种机制有助于提高系统的稳定...

    centos7配置swap交换内存空间

    centos7配置swap交换内存空间 centos7配置swap交换内存空间 centos7配置swap交换内存空间

    SUSE上扩容Swap空间方法

    当物理内存不足时,系统会将部分不常用的数据移动到Swap空间中,从而释放物理内存供其他程序使用。SUSE Linux作为一款流行的Linux发行版,同样提供了多种方法来增加Swap空间。本文将详细介绍两种扩容Swap空间的方法...

    Solaris Swap概念和空间管理

    在 Solaris 操作系统中,Swap空间是一种至关重要的资源,它扮演着虚拟内存的角色,用于扩展物理内存的容量。当物理内存不足时,系统会将部分数据移到Swap空间,以便腾出内存供其他进程使用。Swap空间的管理是系统...

    手机内置储存建立swap虚拟内存工具集

    内含: 1、ADB 2、安卓超级终端 3、busybox.apk 4、RE文件管理器(2.3.6可用) 5、《安卓手机内置储存建立swap虚拟内存》中的附件,包括:buildswap.sh、autostart.sh、autostart.apk

    Linux系统增加swap空间方法.docx

    在Linux系统中,Swap空间是一种虚拟内存技术,它通过将物理内存中的数据临时转移到硬盘上来扩展系统的可用内存空间。这对于提高系统性能、处理更大的任务负载以及避免因物理内存不足而导致的应用程序崩溃等问题非常...

    solaris 动态增加SWAP空间

    1.su - root 2.创建SWAP文件 mkfile nnn filename mkfile 100m swapfile 3.激活swap ... -d (删除多余swap空间) 4. vi /etc/vfstab /path/filename - - swap - no - 5. 检验 /usr/sbin/swap -l

    openwrt swap启用脚本

    - **选择合适的Swap大小**:Swap空间的大小应该根据设备的实际内存需求和硬盘容量来决定。过大的Swap文件会占用宝贵的存储空间,而过小则可能无法达到预期效果。 - **性能考量**:由于Swap依赖于硬盘读写,其访问...

    Linux操作系统上两种新的SWAP空间创建方法

    在Linux操作系统中,SWAP空间是一种重要的内存管理机制,它扩展了系统的物理内存,当物理内存不足时,系统会将部分内存页交换到SWAP空间,以缓解内存压力。SWAP空间的创建有两种主要方法:分区型和文件型。下面我们...

    详细解读linux下swap分区的作用

    Swap空间的设计是基于虚拟内存的概念,它允许操作系统创建比实际物理内存更大的地址空间。每个进程都有独立的虚拟内存空间,这样就确保了进程间的隔离和安全性。当某个进程被换出到Swap时,其内存内容会被保存,当...

    Ubuntu设置swap交换内存.docx

    当物理内存不足时,系统会将部分不常用的内存页面移动到Swap空间中,以此来释放物理内存供其他程序使用。本篇文章将详细介绍如何在Ubuntu系统上配置Swap空间。 #### 二、检查当前内存情况 在配置Swap之前,首先...

    Linux交换空间(SWAP)配置[定义].pdf

    增大 SWAP 空间可以通过增加硬盘空间或将闲置的物理内存分配给SWAP来实现,而减小 SWAP 空间则可以通过卸载 SWAP、格式化 SWAP 等方式来实现。 在 Linux 系统中,SWAP 空间的管理是一个复杂的过程,需要系统管理员...

    ubuntu中swap(虚拟内存)设置方法

    在Ubuntu操作系统中,虚拟内存(Swap)是一种存储技术,它扩展了系统的物理内存,当物理内存不足时,系统会将一部分硬盘空间作为临时的内存使用。对于资源有限的设备,尤其是服务器或者虚拟机,合理设置Swap空间对于...

    交换分区swap

    1. 交换分区swap的作用:交换分区swap的主要作用是当系统内存不足时,提供临时存储空间,以避免系统崩溃或性能下降。 2. 检查可用swap空间要求:在安装系统时,需要检查可用swap空间是否满足最低要求。如果不满足...

    Linux内存中Swap和Buffer Cache机制

    Swap空间是Linux实现虚拟内存的关键,它允许系统将物理内存中暂时不用的数据存储到硬盘上,以此扩展内存容量。当需要这部分数据时,再从硬盘读回内存。然而,由于硬盘速度远慢于内存,频繁的Swap操作会导致系统性能...

    Linuxswap扩展

    在Linux操作系统中,虚拟内存(Swap)是一种重要的内存管理机制,它允许系统在物理RAM不足时,将部分数据存储到硬盘上,以扩大可用内存。当物理内存使用殆尽时,Swap分区充当了额外的内存资源,使得系统能够继续运行...

    swap_state.rar_swap

    在Linux操作系统中,交换(swap)空间是一种至关重要的内存管理机制。它允许系统在物理RAM不足时,将部分内存中的数据暂时存储到硬盘上,从而腾出物理内存供其他进程使用。标题"swap_state.rar_swap"暗示我们关注的...

    Linux系统Swap交换区

    那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间被临时保存到Swap空间 中,等到那些程序要运行时,再从Swap中恢复保存的数据到内存中。这样,系统总是在物理内存不够时,才进行Swap交换...

    Linux交换空间(SWAP)配置[文].pdf

    Linux 交换空间(SWAP)是指操作系统在物理内存不足时,使用硬盘空间来存储数据的一种机制。SWAP 空间是一个特殊的磁盘分区,用于存储当前无法加载到物理内存中的数据。该机制可以有效地提高系统性能,避免系统崩溃...

Global site tag (gtag.js) - Google Analytics