在Linux服务器上,交换空间(Swap)是一个用于扩展物理内存的虚拟内存区域。当物理内存用尽时,操作系统会将一些数据从RAM移到交换空间中,以释放内存供当前任务使用。交换空间可以是一个磁盘分区、一个文件或一个LVM卷。下面是关于如何查看和创建交换分区(Swap)的详细指南。
一、查看当前交换空间
可以通过以下命令查看当前系统的交换空间使用情况:
1. 使用 free
命令查看交换空间
free -h
输出示例:
total used free shared buff/cache available
Mem: 7.8Gi 1.2Gi 5.4Gi 194Mi 1.1Gi 6.2Gi
Swap: 2.0Gi 0.0Ki 2.0Gi
- Swap 列显示当前的交换空间大小、已用空间和空闲空间。
2. 使用 swapon
命令查看交换设备
swapon --show
这会列出所有启用的交换空间,包括文件和分区。
3. 使用 lsblk
命令查看交换分区
lsblk
这将列出所有磁盘及其分区,包括交换分区(通常标记为 swap
类型)。
二、创建交换分区
如果系统没有交换分区或你需要增加交换空间,可以通过以下步骤创建交换分区。
1. 创建一个新的分区
首先,使用 fdisk
或 parted
工具对磁盘进行分区。假设我们使用的是 /dev/sdb
作为目标磁盘。
sudo fdisk /dev/sdb
在 fdisk
工具中执行以下操作:
- 输入
n
创建一个新分区。 - 输入
p
选择主分区。 - 输入分区号(例如
1
)。 - 设置分区的大小(例如
+2G
表示分区大小为 2GB)。 - 输入
t
修改分区类型。 - 输入
82
设置交换分区类型。 - 输入
w
保存并退出。
2. 格式化分区为交换类型
创建好交换分区后,需要使用 mkswap
命令将其格式化为交换空间:
sudo mkswap /dev/sdb1
3. 启用交换分区
使用 swapon
命令启用交换分区:
sudo swapon /dev/sdb1
4. 检查交换分区是否启用
再次使用 swapon --show
或 free -h
查看交换分区是否已经成功启用。
swapon --show
或者
free -h

三、设置开机自动启用交换分区
为了确保交换分区在系统重启后自动启用,需要将其添加到 /etc/fstab
文件中。
1. 编辑 /etc/fstab
sudo nano /etc/fstab
2. 添加交换分区信息
在文件末尾添加一行,指定交换分区的信息。假设我们使用的是 /dev/sdb1
分区,添加如下行:
/dev/sdb1 none swap sw 0 0
保存并退出编辑器。
四、创建交换文件(可选)
如果你不想创建额外的交换分区,另一种方法是创建一个交换文件来作为交换空间。
1. 创建交换文件
sudo ddif=/dev/zero of=/swapfile bs=1M count=2048
- 这里创建了一个 2GB 的交换文件(
count=2048
代表 2048 MB)。
2. 设置交换文件权限
确保交换文件的权限正确,只有 root 用户能读取和写入:
sudo chmod 600 /swapfile
3. 格式化交换文件
使用 mkswap
格式化交换文件:
sudo mkswap /swapfile
4. 启用交换文件
启用交换文件:
sudo swapon /swapfile
5. 设置开机自动启用交换文件
编辑 /etc/fstab
文件,添加如下行:
/swapfile none swap sw 0 0
保存并退出。
五、调整交换空间的大小
如果需要调整交换空间的大小,可以删除现有的交换分区或交换文件,然后重新创建新的交换空间。
1. 禁用交换分区或交换文件
sudo swapoff /dev/sdb1
或者对于交换文件:
sudo swapoff /swapfile
2. 删除交换文件(如果是交换文件)
sudo rm /swapfile
3. 重新创建新的交换分区或交换文件,重复上述步骤。
六、优化交换空间使用
1. 修改 swappiness
参数
swappiness
控制系统何时将数据从内存交换到交换空间。值的范围是 0 到 100,较低的值表示系统更倾向于使用物理内存,而较高的值则表示系统更早地使用交换空间。
可以查看当前的 swappiness
值:
cat /proc/sys/vm/swappiness
如果要临时调整 swappiness
值,可以使用以下命令:
sudo sysctl vm.swappiness=10
如果要永久修改 swappiness
值,可以编辑 /etc/sysctl.conf
文件,添加如下行:
vm.swappiness = 10
保存并退出,然后应用配置:
sudo sysctl -p
总结
- 查看交换空间:使用
free -h
、swapon --show
、lsblk
等命令查看当前交换空间。 - 创建交换分区:使用
fdisk
创建新的分区,并用 mkswap
格式化为交换空间。 - 启用交换分区:使用
swapon
启用交换分区。 - 创建交换文件:通过创建交换文件并格式化为交换空间来增加虚拟内存。
- 设置开机自动启用交换空间:编辑
/etc/fstab
文件进行配置。 
版权声明:本文内容来自CSDN:隔墙有耳呀,遵循CC 4.0 BY-SA版权协议上原文接及本声明。
本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行可。
原文链接:https://blog.csdn.net/jhg121361843/article/details/139424335
如有涉及到侵权,请联系,将立即予以删除处理。
在此特别鸣谢原作者的创作。
此篇文章的所有版权归原作者所有,与本公众号无关,商业转载建议请联系原作者,非商业转载请注明出处。