创建 4GB Swap 空间的步骤:
1. 创建 swap 文件
# 创建 4GB 的 swap 文件
sudo fallocate -l 4G /swapfile
# 或者使用 dd 命令(更慢但更可靠)
# sudo dd if=/dev/zero of=/swapfile bs=1M count=4096
2. 设置文件权限
sudo chmod 600 /swapfile
3. 格式化为 swap 分区
sudo mkswap /swapfile
4. 启用 swap
sudo swapon /swapfile
5. 验证 swap 是否生效
# 查看 swap 使用情况
free -h
# 或者
cat /proc/swaps
6. 永久化配置(重启后仍然有效)
# 备份原配置文件
sudo cp /etc/fstab /etc/fstab.bak
# 将 swap 文件添加到 fstab
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
7. 调整 swap 使用策略(可选)
# 查看当前 swappiness 值
cat /proc/sys/vm/swappiness
# 设置 swappiness 值(范围 0-100,建议设置为 10-20)
sudo sysctl vm.swappiness=10
# 永久设置
echo 'vm.swappiness=10' | sudo tee -a /etc/sysctl.conf
注意事项:
- 添加 swap 只是临时解决方案,不能替代增加物理内存
- swap 访问速度比物理内存慢很多,可能会影响系统性能
- 建议同时优化 Docker 容器的内存使用,从根本上解决问题
执行完成后,你的系统将拥有 4GB 的 swap 空间,这应该能缓解当前的内存压力。
要将 swap 空间从 4GB 扩展到 8GB,需要先禁用现有的 swap,然后重新创建更大的 swap 文件。
扩展 swap 到 8GB 的步骤:
1. 禁用当前的 swap
# 禁用 swap
sudo swapoff /swapfile
# 验证 swap 已禁用
free -h
2. 删除旧的 swap 文件
# 删除 4GB 的 swap 文件
sudo rm /swapfile
3. 创建新的 8GB swap 文件
# 创建 8GB 的 swap 文件
sudo fallocate -l 8G /swapfile
# 或者使用 dd 命令
# sudo dd if=/dev/zero of=/swapfile bs=1M count=8192
4. 设置文件权限
sudo chmod 600 /swapfile
5. 格式化为 swap 分区
sudo mkswap /swapfile
6. 启用新的 swap
sudo swapon /swapfile
7. 验证新的 swap 大小
# 查看 swap 使用情况
free -h
# 或者查看 swap 详细信息
cat /proc/swaps
8. 确保配置持久化
通常 /etc/fstab
中的配置不需要修改,因为文件路径相同:
# 检查 fstab 配置
cat /etc/fstab | grep swap
# 如果没有 swap 配置,添加它
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
验证结果:
# 确认 swap 大小
free -m | grep Swap
完成这些步骤后,你的 swap 空间就会从 4GB 扩展到 8GB 了。