加入收藏 | 设为首页 | 会员中心 | 我要投稿 晋中站长网 (https://www.0354zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Unix > 正文

Linux交换空间swap讲解

发布时间:2022-11-22 14:01:03 所属栏目:Unix 来源:转载
导读: 大家需要线了解Linux的物理存储结构,以及如何利用 fdisk 命令来划分分区,使用 mkfs 命令来格式化分区,使用 mount 命令来进行挂载。但是细心的朋友会发现,当我们重启系统之后,发现新增

大家需要线了解Linux的物理存储结构,以及如何利用 fdisk 命令来划分分区,使用 mkfs 命令来格式化分区,使用 mount 命令来进行挂载。但是细心的朋友会发现,当我们重启系统之后,发现新增的分区不见了,如果想让这个设备文件的挂载永久有效,则需要把挂载的信息写入到配置文件 /etc/fstab 中:

unix主机空间_免费免备案主机空间_无忧主机asp空间

/dev/sdb1 /myFS xfs defaults 0 0

上面命令中,各列字段的含义如下:

unix主机空间_免费免备案主机空间_无忧主机asp空间

大家应该都知道,直接从内存中读写数据要比从硬盘读写数据快得多,因此有时候我们更希望所有数据的读写都在内存中完成。然而实际情况中是不可能的unix主机空间,因为内存是有限的,为了解决这一问题,就引出了物理内存与虚拟内存的概念。

交换空间swap的基本概念

物理内存就是系统硬件提供的内存大小,是真正的内存。相对于物理内存,在 Linux 下还有一个虚拟内存的概念,虚拟内存是为了满足物理内存的不足而提出的策略,其设计目的是为了解决真实物理内存不足的问题,它是利用磁盘空间虚拟出的一块逻辑内存。用作虚拟内存的磁盘空间被称为交换空间(又称 swap 空间)。

无忧主机asp空间_免费免备案主机空间_unix主机空间

[虚拟内存和交换空间的映射关系图]

作为物理内存的扩展,Linux 会在物理内存不足时,使用交换分区的虚拟内存,更详细地说,就是内核会将暂时内存中暂时不常用的数据临时存放到硬盘中,以便腾出物理内存空间。这样一来,物理内存得到了释放,这块内存就可以用于其他目的,当需要用到原始的内容时,这些信息会被重新从交换空间读入物理内存。

但由于交换分区毕竟是通过硬盘设备读写数据的,速度肯定要比物理内存慢,所以只有当真实的物理内存耗尽后才会调用交换分区的资源。

Linux 的内存管理采取的是分页存取机制,为了保证物理内存能得到充分的利用,内核会在适当的时候将物理内存中不经常使用的数据块自动交换到虚拟内存中,而将经常使用的信息保留到物理内存。

当然要深入了解Linux的内存机制,我们还需要掌握以下几点内容:

Linux 系统会不时地进行页面交换操作,以保持尽可能多的空闲物理内存Linux 根据“最近最经常使用”的原则,将一些不经常使用的页面文件交换到虚拟内存

3.交换空间的页面在使用时会首先被交换到物理内存,如果此时没有足够的物理内存来容纳这些页面,它们又会被马上交换出去,如此一来,虚拟内存中可能没有足够的空间来存储这些交换页面,最终会导致 Linux 出现假死机、服务异常等问题

swap 配额大小

因此,合理规划和设计 Linux 内存的使用是非常重要的,关于物理内存和交换空间的大小设置问题,取决于实际所用的硬盘大小,我们看下redhat官方建议:

Amount of RAM in the system 物理内存Recommended swap space建议的交换空间大小Recommended swap space if allowing for hibernation如果开启休眠功能建议的交换空间大小? 2GB2 times the amount of RAM3 times the amount of RAM

2GB – 8GB |Equal to the amount of RAM| 2 times the amount of RAM

8GB – 64GB| At least 4 GB| 1.5 times the amount of RAM

64GB| At least 4 GB| Hibernation not recommended

我们实际在生产环境中,交换分区的大小一般为真实物理内存的1.5~2倍。

如何添加交换分区

添加交换分区之前,我们依旧可以从 /dev/sdb 设备进行分区,我这里先分出4G的空间,执行操作过程入下图:

无忧主机asp空间_unix主机空间_免费免备案主机空间

从上图可以看到,我们分出的第二个分区名称是 /dev/sdb2 ,使用SWAP分区专用的格式化命令 mkswap ,对新建的主分区进行格式化操作:

$ mkswap /dev/sdb2

为了能够提现实验的效果,我们先来看下目前的swap大小是多少:

$ free -m

使用swapon命令把准备好的SWAP分区设备正式挂载到系统中。我们再使用 free -m 命令查看交换分区的大小变化(由2047MB增加到6143MB):

$swapon /dev/sdb2

同样,为了能够让新的交换分区设备在系统重启后依然生效,我们还需要将如下信息写入到 //etc/fstab 配置文件中:

/dev/sdb2 swap swap defaults 0 0

写入完成之后记得保存文件。

(编辑:晋中站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!