在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
/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 dd if=/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文件进行配置。
通过这些步骤,你可以有效地管理Linux服务器上的交换空间,以确保系统在内存不足时能够顺利运行。
2430

被折叠的 条评论
为什么被折叠?



