新增swap
要增加 Linux 系统的交换空间,可以按照以下步骤操作:
1. 创建一个交换文件
首先,选择文件路径和大小(例如,增加 1 GB 交换空间)。
sudo fallocate -l 1G /swapfile
如果 fallocate
不可用,可以使用 dd
命令:
sudo dd if=/dev/zero of=/swapfile bs=1M count=1024
这会创建一个 1 GB 的文件(1024 个 1MB 块)。
2. 设置交换文件权限
将交换文件的权限设置为只有 root 用户可读写。
sudo chmod 600 /swapfile
3. 格式化交换文件
将文件格式化为交换区域。
sudo mkswap /swapfile
4. 启用交换文件
激活交换文件,使其立即生效。
sudo swapon /swapfile
5. 验证交换空间
使用以下命令查看交换空间是否增加成功:
free -m
6. 设置开机自动挂载交换文件
将交换文件加入 /etc/fstab
,以便重启后仍然保留。
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
7. 可选:调整交换使用策略
通过修改 vm.swappiness
参数,可以控制系统何时使用交换空间。值越低,越倾向于使用物理内存而不是交换空间(默认通常为 60)。
vm.swappiness
的取值范围是 0 到 100
sudo sysctl vm.swappiness=10
要永久保存,可以将该配置添加到 /etc/sysctl.conf
:
echo 'vm.swappiness=10' | sudo tee -a /etc/sysctl.conf
完成后,你的系统应该有了更大的交换空间。
扩展swap
如果当前的 1G
交换空间不够用,你可以通过扩展现有的交换文件或创建新的交换文件来增加交换空间。以下是扩展现有 /swapfile
的方法:
方法一:扩展现有的 /swapfile
- 关闭当前的交换文件:
sudo swapoff /swapfile
- 扩展
**/swapfile**
文件的大小:
例如,如果你想再增加 1G
(即总共 2G
),可以使用 dd
命令:
sudo dd if=/dev/zero bs=1M count=1024 >> /swapfile
- 更新交换文件权限:
sudo chmod 600 /swapfile
- 重新设置为交换文件格式:
sudo mkswap /swapfile
- 重新启用交换文件:
sudo swapon /swapfile
- 验证交换空间:
你可以通过 free -h
或 swapon --show
命令检查是否已经成功扩展了交换空间。
方法二:创建新的交换文件
如果你不想扩展现有的 /swapfile
,可以创建另一个交换文件(例如 /swapfile2
):
- 创建新的交换文件(例如增加
1G
):
sudo dd if=/dev/zero of=/swapfile2 bs=1M count=1024
- 设置交换文件权限:
sudo chmod 600 /swapfile2
- 将新的文件格式化为交换文件:
sudo mkswap /swapfile2
- 启用新交换文件:
sudo swapon /swapfile2
- 验证新的交换空间是否可用:
使用以下命令查看总交换空间:
free -h
- 确保交换文件在重启后仍然可用:
在 /etc/fstab
中添加一行:
/swapfile2 swap swap defaults 0 0
通过这些步骤,你可以灵活地扩展交换空间来满足应用的需求。