Linux-交换空间(Swap)管理

引入概念

在计算机中,硬盘的容量一般比内存大,内存 (4GB 8GB 16GB 32GB 64GB...),硬盘(512GB 1T 2T...)。

冯诺依曼的现代计算机结构体系里面的存储器就是内存

内存是一种易失性存储器,断电后内存上的数据将丢失;硬盘上的数据依然存在,所以硬盘需要更大的容量用来存储数据,而内存的空间相对小一点。

运行一个计算机或者操作系统时,CPU里面的数据都是由内存提供的。内存的数据直接给CPU运算进行控制;硬盘上的数据先给内存,内存再提供给CPU。

因为内存的空间小很容易被用完,如果内存被拉满,计算机将不能正常工作。这个时候计算机有可能出现**"蓝屏""死机"** 等,甚至可能会直接重启

既然内存的空间小,也可能很快把它用完。那么可以把内存上面的数据分成两部分,一部分数据是暂时不用的(冷数据),另外一部分数据是当前需要用的(热数据)。冷数据放在内存里面有点浪费空间,可以把它放到硬盘上面去暂时寄存。热数据在使用过程中也会变得越来越多,再把这些数据重新分成热数据和冷数据;当放在磁盘里的冷数据被重新使用时,又会作为热数据。

这样一来,内存会有一个换入换出 的过程,而内存在磁盘上换入换出所占据的空间称其为交换空间 (Linux中的称呼),在Windows里的名字叫"虚拟内存"。

注:交换空间有多少都行,总之必须得有。

问:什么样的空间可以作为交换空间呢?

答:1.磁盘 2.分区

操作演示

准备磁盘

现有两块磁盘,它们都可以用来做成交换空间

root@localhost jian\]# ll /dev/sda\* ![](https://i-blog.csdnimg.cn/direct/7412c5643988444f831ed38d898265ad.png) \[root@localhost jian\]# ll /dev/nvme0n2 ![](https://i-blog.csdnimg.cn/direct/7ec69d38f53a45249c13a4af2fa7b3e6.png) ### 设置交换空间 #### sda磁盘(不分区) \[root@localhost jian\]# mkswap /dev/sda ![](https://i-blog.csdnimg.cn/direct/2dd053b923c346f394fa8aa983a6ecfb.png) 设置交换空间,版本为1,大小20GB #### nvme0n2磁盘(分区) \[root@localhost jian\]# fdisk /dev/nvme0n2 Command (m for help): n Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-41943039, default 41943039): +10G ![](https://i-blog.csdnimg.cn/direct/d46c81723b2e4b6bb9827d184bb85a74.png) n add a new partition **增加一个新的区域** +10G(**大小为10GB**) ![](https://i-blog.csdnimg.cn/direct/5699956225bf41be90cdcec99a8c5089.png) ![](https://i-blog.csdnimg.cn/direct/30d78a4723b84637af4af59f168bcd61.png) ![](https://i-blog.csdnimg.cn/direct/ec28975245b64e84a6e177795ad4abd4.png) ![](https://i-blog.csdnimg.cn/direct/35d67d01b8cc414982754825d34495b3.png) Command (m for help): p **将分区标记为swap类型(l,t)** Command (m for help): l Command (m for help): t Hex code or alias (type L to list all): 82 Command (m for help): p Command (m for help): w p print the partition table **打印分区表** w write table to disk and exit **将表写入磁盘并退出** 查看分区:\[root@localhost jian\]# ll /dev/nvme0n2\* ![](https://i-blog.csdnimg.cn/direct/63be07eade814394a90781801ad4008d.png) 成功创建分区,分区也可以做成交换空间 \[root@localhost jian\]# mkswap /dev/nvme0n2p1 ![](https://i-blog.csdnimg.cn/direct/09dccb2d34b848c2afac19af936b76c4.png) 设置交换空间,版本为1,大小10GB ### 查看空间情况 \[root@localhost jian\]# free -m ![](https://i-blog.csdnimg.cn/direct/f1a9f2bcb7d44266a43fc2d66e037ae9.png) 1.此命令可以查看当前操作系统中内存的使用情况以及交换空间的使用情况,内存总共8203 MB,用了1526 MB,还剩6212 MB 2.因为现在物理内存够用而且使用起来更快,所以交换空间还没开始使用。但不是要等物理内存全部用光之后再去使用交换空间。 ### 交换空间的使用 \[root@localhost jian\]# swapon /dev/sda **启用** \[root@localhost jian\]# free -m ![](https://i-blog.csdnimg.cn/direct/6061ed8091dc494ca56a12ca3357fe9c.png) 启用之后交换空间的内存已经明显变大 \[root@localhost jian\]# swapon /dev/nvme0n2p1 \[root@localhost jian\]# free -m ![](https://i-blog.csdnimg.cn/direct/fc8d2ea72bf14f0493cfc8d4b24e2142.png) 再启用一个,交换空间的内存比之前更大 ### 查看空间所有信息 \[root@localhost jian\]# swapon -s ![](https://i-blog.csdnimg.cn/direct/459f8dcf8e3c466a9b929d37dc2c14eb.png) 目前整个交换空间由这三部分空间组成 ### 关闭交换空间 **已经不想使用交换空间了,进行如下关闭操作** \[root@localhost jian\]# swapoff /dev/nvme0n2p1 \[root@localhost jian\]# swapon -s ![](https://i-blog.csdnimg.cn/direct/94bee88677ea4753a2a197dd33372156.png) 在命令后面加上路径,就能关闭对应的交换空间 \[root@localhost jian\]# swapoff /dev/sda \[root@localhost jian\]# swapon -s ![](https://i-blog.csdnimg.cn/direct/323b24d4e2fa4322add39c23e549766b.png) 当前把新开启的交换空间都已经关闭了,而且系统给出的交换空间也是可以关闭的。

相关推荐
inquisiter8 分钟前
UEFI镜像结构布局
linux·spring
孤独得猿24 分钟前
Qt常用控件第一部分
服务器·开发语言·qt
不爱吃鱼的猫-39 分钟前
Node.js 安装与配置全攻略:从入门到高效开发
服务器·node.js
Linux运维老纪1 小时前
运维之 Centos7 防火墙(CentOS 7 Firewall for Operations and Maintenance)
linux·安全·centos·云计算·运维开发·火绒
斯普信专业组1 小时前
Ceph异地数据同步之-RBD异地同步复制(下)
linux·服务器·ceph
counsellor1 小时前
CentOS 7安装hyperscan
linux·centos·hyperscan
电星托马斯1 小时前
Linux系统CentOS 6.3安装图文详解
linux·运维·服务器·程序人生·centos
啞謎专家1 小时前
CentOS中挂载新盘LVM指南:轻松扩展存储空间,解决磁盘容量不足问题
linux·运维·服务器
s_little_monster1 小时前
【Linux】进程信号的捕捉处理
linux·运维·服务器·经验分享·笔记·学习·学习方法
一大Cpp1 小时前
Ubuntu与本地用户交流是两种小方法
linux·运维·ubuntu