/article/2020/01/19/swap-usage/

Linux swap 维护

  • 【作者】看不见我
  • 【分类】Linux
  • 【发布】2020-01-19 10:17
  • 【更新】2020-01-19 10:17

Linux swap 操作

让系统尽量不使用交换分区,注意不是禁用

echo "vm.swappiness = 0">> /etc/sysctl.conf
sysctl -p

查看swap状态

swapon -s

刷新SWAP

# 可以执行命令刷新一次SWAP(将SWAP里的数据转储回内存,并清空SWAP里的数据)
swapoff -a && swapon -a

自动挂载swap

# 这个命令会自动根据 /etc/fstab 的配置挂载swap分区
swapon -a

禁用swap

# 1. 删除 swap 分区所有内容
# 执行 swapoff -a 后的free命令显示的 swap 一行应该全部是 0
swapoff -a

# 2. 删除 swap 挂载,这样系统下次启动不会再挂载 swap
# 在 /etc/fstab 中注释 swap 行
vim /etc/fstab

启用swap分区

Linux下可以创建两种类型的交换空间:

  • 一种是swap分区。适合有空闲的分区可以使用。
  • 一种是swap文件。适合于没有空的硬盘分区。

使用swap分区

使用swap分区的方式,就是创建硬盘分区,格式化为swap文件系统。

# 1、拿硬盘创建一个分区:
#parted /dev/sdb

# 2、格式化为swap格式:
mkswap /dev/sdb1

# 3、启用交换分区:
swapon /dev/sdb1
# 关闭swap分区
#swapoff /dev/sdb1

# 4、如果要重启生效,将swap分区写入 /etc/fstab
# vim /etc/fstab
# /dev/sdb1 swap swap defaults 0 0
#
# 写入 /etc/fstab 的swap可以使用命令:
swapon -a

使用swap文件

# 1、创建用于交换分区的文件:
dd if=/dev/zero of=/mnt/swap bs=4096 count=1048576(这条命令运行完后稍等一会)
# 注:dd创建的文件总大小等于(bs * count)。
#   (bs * count) / 1024 / 1024 / 1024 = nG
#   count = (nG * 1024 * 1024 * 1024) / bs
#   本例是 4096*1048576=4G(4294967296 bytes)。
# 注释:
#   dd:可以创建指定大小(4G)的文件
#   if:指定输入设备
#   /dev/zero:无限0资源
#   of:指定输出设备
#   bs:每个块的大小
#   count:块的数量

# 2、设置交换分区文件:
mkswap /mnt/swap

# 4、设置文件权限:
chown root:root /mnt/swap
chmod 0600 /mnt/swap

# 5、启用交换分区文件:
swapon /mnt/swap

# 6、如果要重启生效,将swap分区写入 /etc/fstab
# vim /etc/fstab
# /mnt/swap swap swap defaults 0 0
#
# 写入 /etc/fstab 的swap可以使用命令:
swapon -a
Top