centos7创建swap linux创建swap 创建swap

centos7创建swap   linux创建swap  创建swap  

 

创建一个 8GB 的 swap 文件。以下是完整的步骤:

 

=================================================================================

注意事项:

  1. 确保有足够的磁盘空间:8GB 文件需要至少 8GB 的可用空间

  2. 文件位置:通常放在 / 根目录下,也可以放在其他分区

  3. 性能考虑:

    • SSD 上使用 swap 文件性能较好

    • 机械硬盘上性能会差一些

  4. 内存充足时:如果物理内存充足(15G),可以设置较低的 swappiness(如10),减少 swap 使用

  5. 安全性:确保 /swapfile 权限为 600(只有 root 可读写)

 

 

 

创建 8GB Swap 文件的完整步骤:

步骤1:检查当前磁盘空间

# 查看磁盘空间
df -h

# 查看是否有现有的 swap
swapon --show
free -h


步骤2:创建 8GB 的 swap 文件

# 1. 创建 8GB 的空文件(使用 fallocate,速度更快)
fallocate -l 8G /swapfile

# 如果 fallocate 不支持,使用 dd:
# dd if=/dev/zero of=/swapfile bs=1M count=8192

# 2. 验证文件大小
ls -lh /swapfile
# 应该显示:-rw-r--r-- 1 root root 8.0G Dec 10 15:20 /swapfile


步骤3:设置正确的权限


# 只有 root 可读写,防止安全问题
chmod 600 /swapfile
ls -lh /swapfile
# 应该显示:-rw------- 1 root root 8.0G Dec 10 15:20 /swapfile


步骤4:设置为 swap 格式


# 格式化文件为 swap
mkswap /swapfile

# 输出示例:
# Setting up swapspace version 1, size = 8388604 KiB
# no label, UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx


步骤5:启用 swap 文件


# 临时启用(重启后会失效)
swapon /swapfile

# 验证是否启用
swapon --show
free -h
# 现在应该能看到 8G 的 swap


步骤6:永久配置(添加到 fstab)

# 1. 备份 fstab
cp /etc/fstab /etc/fstab.backup.$(date +%Y%m%d%H%M%S)

# 2. 添加 swap 配置到 /etc/fstab
echo '/swapfile none swap sw 0 0' >> /etc/fstab

# 3. 验证 fstab
cat /etc/fstab
# 应该看到类似:
# UUID=19da9702-e4b3-4982-859f-691559f17007 /                       ext4    defaults        1 1
# /swapfile none swap sw 0 0




步骤7:优化 swap 设置(可选)

# 1. 调整 swappiness(控制使用 swap 的倾向,默认60)
# 值越低越少使用 swap,越高越多使用 swap
echo 'vm.swappiness=10' >> /etc/sysctl.conf

# 2. 调整 cache pressure(控制内存回收倾向)
echo 'vm.vfs_cache_pressure=50' >> /etc/sysctl.conf

# 3. 立即生效
sysctl -p

# 4. 验证设置
cat /proc/sys/vm/swappiness
cat /proc/sys/vm/vfs_cache_pressure



一键执行脚本:

创建一个脚本 create_swap.sh:


#!/bin/bash

echo "=== 开始创建 8GB Swap 文件 ==="

# 1. 检查当前状态
echo "1. 检查当前 swap 状态:"
free -h
echo ""

# 2. 检查磁盘空间
echo "2. 检查磁盘空间:"
df -h /
echo ""

# 3. 创建 swap 文件
echo "3. 创建 8GB swap 文件..."
if command -v fallocate &> /dev/null; then
    fallocate -l 8G /swapfile
else
    dd if=/dev/zero of=/swapfile bs=1M count=8192
fi

# 4. 设置权限
echo "4. 设置文件权限..."
chmod 600 /swapfile

# 5. 格式化为 swap
echo "5. 格式化为 swap..."
mkswap /swapfile

# 6. 启用 swap
echo "6. 启用 swap..."
swapon /swapfile

# 7. 添加到 fstab
echo "7. 添加到 /etc/fstab..."
cp /etc/fstab /etc/fstab.backup.$(date +%Y%m%d%H%M%S)
echo '/swapfile none swap sw 0 0' >> /etc/fstab

# 8. 优化配置
echo "8. 优化 swap 配置..."
grep -q "vm.swappiness" /etc/sysctl.conf || echo 'vm.swappiness=10' >> /etc/sysctl.conf
grep -q "vm.vfs_cache_pressure" /etc/sysctl.conf || echo 'vm.vfs_cache_pressure=50' >> /etc/sysctl.conf
sysctl -p

# 9. 验证结果
echo ""
echo "=== 创建完成 ==="
echo "最终状态:"
swapon --show
free -h

echo ""
echo "文件信息:"
ls -lh /swapfile

echo ""
echo "fstab 配置:"
tail -1 /etc/fstab

 

 

验证是否成功:
执行完成后,检查:

bash
# 查看 swap 状态
free -h
# 应该显示:Swap: 8.0G

# 查看详细的 swap 信息
swapon --show
# 应该显示:/swapfile file 8G 0B -2

# 检查是否开机自动加载
cat /etc/fstab | grep swap
# 应该显示:/swapfile none swap sw 0 0

# 测试重启后是否自动生效
# 可以重启系统后再次检查
🎯 推荐配置:
对于 15GB 内存的服务器:

swap 大小:8GB(内存的一半左右)

swappiness:10(内存充足,少用 swap)

vfs_cache_pressure:50(适中)

这样配置后,你的系统就有了 8GB 的 swap 空间,可以在内存不足时提供缓冲,提高系统稳定性。

 

posted @ 2025-12-11 08:58  闻道者  阅读(11)  评论(0)    收藏  举报