linux 配置 Swap 交换分区

  1. 检查当前 Swap 情况
    首先,检查当前系统是否已经有 Swap 分区或文件:
    sudo swapon --show
    如果没有输出,说明系统没有配置 Swap。
  2. 创建 Swap 文件
    如果没有 Swap 分区,可以通过创建 Swap 文件来配置。步骤如下:
    2.1 创建 Swap 文件
    使用 fallocate 命令创建一个指定大小的 Swap 文件。例如,创建一个 1GB 大小的 Swap 文件:
    sudo fallocate -l 1G /swapfile
    如果 fallocate 不可用,可以使用 dd 命令:
    sudo dd if=/dev/zero of=/swapfile bs=1M count=1024
    2.2 设置 Swap 文件权限
    设置 Swap 文件的权限,确保只有 root 用户可以访问:
    sudo chmod 600 /swapfile
    2.3 将文件转换为 Swap 空间
    将该文件转换为 Swap 空间
    sudo mkswap /swapfile
    2.4 启用 Swap
    启用刚创建的 Swap 文件:
    sudo swapon --show
    或者使用 free -h 查看 Swap 内存是否增加:
    free -h
  3. 持久化配置
    为了确保系统重启后仍然启用 Swap,需要将 Swap 文件添加到 /etc/fstab 文件中:
    echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
  4. 调整 Swap 使用策略(可选)
    你可以调整系统使用 Swap 的策略,修改系统参数 swappiness,它决定了系统多早开始使用 Swap。默认值为 60(范围为 0 到 100),值越低,表示系统倾向于尽量使用物理内存而不是 Swap。建议将其调整为较低值,例如 10:
    sudo sysctl vm.swappiness=10
    要使这个配置永久生效,可以将该设置写入 /etc/sysctl.conf:
    echo 'vm.swappiness=10' | sudo tee -a /etc/sysctl.conf
  5. 调整缓存清理(可选)
    另一个可以调整的参数是 vfs_cache_pressure,它决定了系统在多大程度上优先缓存 inode 和 dentry 信息。默认值为 100,值越低,表示系统会更倾向于保留这些缓存。如果需要,修改这个值也能提高内存利用效率:
    sudo sysctl vm.vfs_cache_pressure=50

总结:
创建并启用 Swap 文件后,确保它在重启后仍然可用。
调整 swappiness 和 vfs_cache_pressure 参数可以优化系统的内存使用策略。
如果 Swap 文件需求量大,建议物理硬盘有足够的剩余空间。

使用 Swap 的好处
防止内存不足崩溃: 当系统的物理内存(RAM)耗尽时,Swap 允许系统将暂时不活跃的进程或数据从内存中移到硬盘,以释放物理内存给其他进程。这可以防止系统因内存不足而崩溃。

提高系统的稳定性和弹性: 尤其是在服务器或开发环境中,内存需求有时会出现意外高峰。如果没有 Swap,系统在物理内存耗尽时会终止进程(通常是 OOM-killer,会随机杀掉进程),影响应用运行。Swap 提供了一个缓冲区域,可以应对内存使用的突发增长。

支持休眠(Hibernation)功能: 在某些操作系统中,Swap 被用于休眠功能。在系统休眠时,所有的内存内容都会写入 Swap 中,然后关闭电源。恢复时,Swap 中的内容会被重新加载到内存,恢复系统的状态。对于休眠功能,Swap 分区的大小至少要等于物理内存的大小。

Swap 文件 vs Swap 分区

  1. Swap 文件的好处:
    灵活性:可以随时增加或减少 Swap 文件的大小,无需对磁盘进行分区操作。尤其在空间紧张或对未来内存需求不确定的情况下,Swap 文件更具灵活性。
    易于管理:创建和删除 Swap 文件非常简单,通过文件操作即可完成,而无需调整硬盘分区表。
    动态调整:在系统运行时可以轻松地启用或禁用 Swap 文件,并且可以动态调整大小。
  2. Swap 分区的好处:
    性能较好:由于 Swap 分区是预先划分的物理区域,操作系统可以更高效地访问 Swap 分区中的数据,特别是在高 I/O 负载的情况下。Swap 分区的物理位置不会像文件那样分散在硬盘的各个位置。
    稳定性:分区相对来说更独立,管理更加稳定,不会受到文件系统损坏或其他系统文件操作的影响。
    更适合长期使用:如果系统长期需要大量的 Swap 空间,尤其是服务器环境,Swap 分区的性能和稳定性更优。
    使用 Swap 文件的场景
    开发环境或测试环境:开发环境可能不需要大量内存,但有时会有临时的内存需求高峰。Swap 文件可以根据需求灵活调整,且管理方便。
    快速配置:在已经运行的系统中,使用 Swap 文件无需重启或重新分区,可以快速增加虚拟内存。
    磁盘空间有限的情况下:如果磁盘分区设置较为紧张或固定,可以选择使用 Swap 文件,而不是重新划分磁盘。
    使用 Swap 分区的场景
    服务器或生产环境:服务器通常需要长期稳定的性能表现,Swap 分区的性能优势和稳定性更适合在这些场景下使用。
    有明确内存需求的系统:如果系统需要长期、大量使用 Swap,或使用休眠功能,则 Swap 分区会更加合适,因为它们的性能和可管理性更好。
    总结:
    Swap 文件适合临时、灵活的需求,尤其在开发或测试环境中。
    Swap 分区在性能和稳定性上表现更好,适合生产环境或长期使用。
    两者都提供内存不足时的缓冲,但选择哪种方式取决于具体使用场景和需求。
posted @ 2024-09-09 14:20  北京小小鸟  阅读(313)  评论(0)    收藏  举报