linux系统中添加交换分区
什么是交换分区?
SWAP(交换)分区是一种通过在硬盘中预先划分一定的空间,然后把内存中暂时不常用的数据临时存放到硬盘中,以便腾出物理内存空间让更活跃的程序服务来使用的技术,其设计的目的是为了解决真实物理内存不足的问题。但由于交换分区毕竟是通过硬盘设备读写数据的,速度肯定比物理内存慢,所以只有当真实的物理内存耗尽后才会调用交换分区的资源。
交换分区能够划分多大?
在生产环境中,交换分区的大小一般为真实物理内存的1.5-2倍。
1、对/dev/sdb添加一个磁盘分区
[root@PC1linuxprobe dev]# fdisk /dev/sdb
Welcome to fdisk (util-linux 2.23.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Command (m for help): p
Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0xe287b3a9
Device Boot Start End Blocks Id System
/dev/sdb1 2048 4196351 2097152 83 Linux
Command (m for help): n
Partition type:
p primary (1 primary, 0 extended, 3 free)
e extended
Select (default p): p
Partition number (2-4, default 2): 2
First sector (4196352-41943039, default 4196352): ## 此处回车
Using default value 4196352
Last sector, +sectors or +size{K,M,G} (4196352-41943039, default 41943039): +5G
Partition 2 of type Linux and of size 5 GiB is set
Command (m for help): p
Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0xe287b3a9
Device Boot Start End Blocks Id System
/dev/sdb1 2048 4196351 2097152 83 Linux
/dev/sdb2 4196352 14682111 5242880 83 Linux
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.
2、查看添加的磁盘分区
[root@PC1linuxprobe dev]# find sd*
sda
sda1
sda2
sdb
sdb1
[root@PC1linuxprobe dev]# partprobe
Warning: Unable to open /dev/sr0 read-write (Read-only file system). /dev/sr0 has been opened read-only.
Warning: Unable to open /dev/sr0 read-write (Read-only file system). /dev/sr0 has been opened read-only.
Warning: Unable to open /dev/sr0 read-write (Read-only file system). /dev/sr0 has been opened read-only.
[root@PC1linuxprobe dev]# find sd*
sda
sda1
sda2
sdb
sdb1
sdb2
3、对磁盘分区进行交换分区格式化
[root@PC1linuxprobe dev]# mkswap /dev/sdb2
Setting up swapspace version 1, size = 5242876 KiB
no label, UUID=208a06d0-30e7-473a-b90a-bf920bf545a8
4、挂载
[root@PC1linuxprobe dev]# free -h
total used free shared buffers cached
Mem: 1.9G 1.1G 859M 10M 1.7M 293M
-/+ buffers/cache: 833M 1.1G
Swap: 2.0G 0B 2.0G
[root@PC1linuxprobe dev]# swapon /dev/sdb2
[root@PC1linuxprobe dev]# free -h
total used free shared buffers cached
Mem: 1.9G 1.1G 855M 10M 1.7M 293M
-/+ buffers/cache: 837M 1.1G
Swap: 7.0G 0B 7.0G
5、设为开机自动挂载
[root@PC1linuxprobe dev]# cat /etc/fstab
#
# /etc/fstab
# Created by anaconda on Thu Nov 5 15:23:01 2020
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/rhel-root / xfs defaults 1 1
UUID=0ba20ae9-dd51-459f-ac48-7f7e81385eb8 /boot xfs defaults 1 2
/dev/mapper/rhel-swap swap swap defaults 0 0
/dev/sdb1 /devide xfs defaults 0 0
[root@PC1linuxprobe dev]# echo -e "/dev/sdb\tswap\tswap\tdefaults\t0\t0" >> /etc/fstab
[root@PC1linuxprobe dev]# cat /etc/fstab
#
# /etc/fstab
# Created by anaconda on Thu Nov 5 15:23:01 2020
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/rhel-root / xfs defaults 1 1
UUID=0ba20ae9-dd51-459f-ac48-7f7e81385eb8 /boot xfs defaults 1 2
/dev/mapper/rhel-swap swap swap defaults 0 0
/dev/sdb1 /devide xfs defaults 0 0
/dev/sdb swap swap defaults 0 0
总结,添加交换分区:
- fdisk交互命令进行磁盘分区:fdisk /dev/sdb
- swap格式化:mkswap /dev/sdb2
- swapon命令挂载:swapon /dev/sdb2
- 设置开机自动挂载:echo -e "/dev/sdb2\tswap\tswap\tdefaults\t0\t0" >> /dev/fstab
注:
- 交换分区大小通常设置为物理内存的1.5-2倍
- 真实内存耗尽才使用交换分区
- 交换分区格式化命令为:mkswap
- 交换分区挂载命令为:swapon /dev/disk* ,而且不需要指定挂载点
- 交换分区的默然挂载点为:swap
- 交换分区默认的文件系统为:swap
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律