当前位置: 首页 > Linux

Linuxswap空间swap解释

时间:2023-04-07 01:28:29 Linux

在上一篇文章中介绍了Linux的物理存储结构,以及如何使用fdisk命令划分分区,使用mkfs命令格式化分区,使用mount命令挂载。但是细心的朋友会发现,当我们重启系统的时候,发现新添加的分区没有了。如果要永久挂载这个设备文件,需要将挂载的信息写入配置文件/etc/fstab:/dev/sdb1/myFSxfsdefaults00上面命令中各列和字段的含义如下如下:字段含义设备文件一般是设备的路径+设备名称,也可以写挂载目录的唯一标识码(UUID)来指定挂载目录对于要上传的目录,格式类型挂载前需要创建指定文件系统的格式,如Ext3、Ext4、XFS、SWAP、iso9660(这是光盘设备)等,如果权限选项设置为defaults,则默认权限为:rw,suid,dev,exec,auto,nouser,async是否备份如果为1,则开机后使用dump进行磁盘备份,如果为0,则不备份。如果为1,则开机后会自动进行磁盘自检,如果为0,则不会大家都应该知道,直接从内存读写数据,比从硬盘读写数据要快很多,所以有时候我们更喜欢读取和写入内存中的所有数据。但是实际情况下是不可能的,因为内存有限。为了解决这个问题,引入了物理内存和虚拟内存的概念。交换空间的基本概念物理内存是系统硬件提供的内存大小,也就是真正的内存。相对于物理内存,Linux下还有一个虚拟内存的概念。虚拟内存是为满足物理内存不足而提出的一种策略。它的设计目的是为了解决真实物理内存不足的问题。一块逻辑内存。用作虚拟内存的磁盘空间称为交换空间(也称为交换空间)。【虚拟内存与swap空间的映射关系】作为物理内存的扩展,Linux会在物理内存不足的时候使用swap分区的虚拟内存。更具体地说,内核会将临时内存中不常用的数据临时保存到硬盘中,以释放物理内存空间。这样,物理内存就被释放了,这块内存就可以做他用了。当需要原来的内容时,信息会从交换空间重新读取到物理内存中。但是由于swap分区通过硬盘设备读写数据,速度肯定比物理内存慢,所以swap分区的资源只有在真正的物理内存耗尽时才会被调用。Linux的内存管理采用分页访问机制。为了保证物理内存能够得到充分利用,内核会在适当的时候自动将物理内存中不常用的数据块交换到虚拟内存中,将经常使用的数据块信息持久化到物理内存中。当然,要深入了解Linux的内存机制,我们还需要掌握以下几点:Linux系统会时不时地进行页面交换操作,以尽可能多地保留空闲的物理内存。不经常使用的页面文件交换到虚拟内存3。交换空间的页面在使用时会先交换到物理内存。如果此时没有足够的物理内存容纳这些页面,它们将被立即换出,以此类推。以后虚拟内存中可能没有足够的空间来存放这些交换页,最终会导致Linux系统出现假死机、服务异常等问题。设置交换空间大小的问题取决于实际使用的硬盘大小。看看redhat官方的推荐:系统物理内存中的RAM数量RecommendedswapspaceRecommendedswapspaceifallowinghibernation如果启用休眠功能Swapspacesize2GB2timesofRAM3timesofRAM2GB–8GB|等于RAM的数量|内存量的2倍8GB–64GB|至少4GB|RAM64GB的1.5倍|至少4GB|不建议休眠在我们实际的生产环境中,swap分区的大小一般是真实物理内存的1.5到2倍。如何添加交换分区在添加交换分区之前,我们仍然可以从/dev/sdb设备进行分区。这里,我先分配了4G的空间,运行过程如下图所示:从上图可以看出,第二个我们分配的第一个分区的名字是/dev/sdb2。使用SWAP分区的特殊格式化命令mkswap格式化新建的主分区:$mkswap/dev/sdb2为了能够撤消实验效果,我们先看看当前swap大小是多少:$free-m使用swapon命令将准备好的SWAP分区设备正式挂载到系统中。我们再用free-m命令查看swap分区大小的变化(从2047MB增加到6143MB):$swapon/dev/sdb2同样,为了新的swap分区设备在系统启动后仍然生效重启,我们还需要添加如下信息写入/etc/fstab配置文件:/dev/sdb2swapswapdefaults00写入后记得保存文件。