linux添加虚拟内存swap

记录linux如何新建swap分区,添加虚拟内存,解决服务器内存不足的问题。

建立swap分区

  1. 首先创建分区文件

    1
    dd if=/dev/zero of=/mnt/swapfile bs=1M count=2048
    • dd: 用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换。

    • if: 输入文件名,缺省为标准输入,即指定源文件

    • of: 输出文件名,缺省为标准输出,即指定目的文件

    • /dev/zero: 创建一个指定长度用于初始化的空文件

    • bs: bytes,设置读入/输出的块大小

    • count: 拷贝块的个数

    • 上述命令指定了/mnt/swapfile 大小为2G

  2. 修改文件权限、建立swap分区并启用

    1
    2
    3
    chmod 0600 /mnt/swapfile
    mkswap /mnt/swapfile
    swapon /mnt/swapfile
  3. 设置开启启用

    在文件/etc/fstab中添加一行

    1
    /mnt/swapfile swap swap defaults 0 0

    调整swap分区使用优先级

  • 查看当前swap使用优先级

    1
    cat /proc/sys/vm/swappiness
  • 修改swap使用优先级

    1
    sudo sysctl vm.swappiness=60 # 一般设为60,表明系统内存剩余100%-60%=40%时,开始使用交换内存
  • 永久修改swap使用优先级

    1
    vim /etc/sysctl.conf # 打开文件

    找到文件中 vm.swappiness=0这一行,修改其值即可。如果没有这一行,则添加这一行。

参考