swap 有两种主要形式,swap文件 和 swap分区
使用 swapon -s 或者 swapon -show 查看当前已启用 swap
swapoff xxxx 关闭swap
启用swap分区
提前创建好sda2为swap分区
| |
创建swap文件
| |
配置swappiness
swappiness 数字越大表示越积极的把较少使用的匿名内存交换到swap
查看当前cat /proc/sys/vm/swappiness 默认值一般是 60
服务器低延迟或PC桌面 建议调低,尽可能使用物理内存,一般默认即可
临时设置
sudo sysctl -w vm.swappiness=100
永久设置
| |
zram 和 zswap
zram:在内存里压缩数据 /dev/zram0
zswap:在硬盘swap之前创建一个压缩缓冲
查看当前swap实时状态 vmstat 1
zram
安装 systemd-zram-generator
创建或编辑 /etc/systemd/zram-generator.conf
[zram0]
zram-size = min(ram / 2, 4096)
compression-algorithm = zstd
swap-priority = 100
内存的一半 但不会超过4G
[zram0]
zram-size = zram-size = ram / 2
compression-algorithm = zstd
swap-priority = 100
内存的一半
重启验证一下 swapon --show zram 状态 zramctl free -h
zswap + swapfile
确认 swapfile 已经启用 swapon --show,添加内核参数到GRUB
etc/default/grub 添加到 GRUB_CMDLINE_LINUX="..."
zswap.enabled=1 zswap.compressor=zstd zswap.zpool=zsmalloc zswap.max_pool_percent=20
Debian系列
update-grub
Red Hat 系列
grubby --update-kernel=ALL --args="zswap.enabled=1 zswap.compressor=zstd zswap.zpool=zsmalloc zswap.max_pool_percent=20"
查看默认内核启动项
grubby --info=DEFAULT
删除
grubby --update-kernel=ALL --remove-args="zswap.enabled zswap.compressor zswap.zpool zswap.max_pool_percent"
重启后检查
cat /proc/cmdline
cat /sys/module/zswap/parameters/enabled
cat /sys/module/zswap/parameters/compressor
cat /sys/module/zswap/parameters/zpool
cat /sys/module/zswap/parameters/max_pool_percent