swap交换文件使用

# 生成文件, btrf不支持交换文件
dd if=/dev/zero of=/nix/swapdir/swap.swap bs=1M count=2048
# 格式化文件
mkswap /nix/swapdir/swap.swap
# 使文件生效
sudo swapon /nix/swapdir/swap.swap
# 设置文件内存交换率
sudo sysctl vm.swappiness=90
cat /proc/sys/vm/swappiness
# 查看Swap使用情况
free -h
  • nixos配置swap文件

sudo vi /etc/nixos/hardware-configuration.nix
# 找到swapDevices
swapDevices = [
    {
        device = "/nix/swapdir/swap.swap";
    }
];

# 其他发行版,编辑文件进行挂载
vi /etc/fstab
/nix/swapdir/swap.swap swap swap defaults 0 0
  • 在nixos的btrfs中创建swap

# https://wiki.archlinux.org/title/Btrfs#Swap_file
cd /home
# 创建 non-snapshotted subvolume 。
sudo btrfs subvolume create swap
sudo btrfs filesystem mkswapfile --size 16g --uuid clear /home/swap/swapfile

# sudo chmod 600 ./swapfile
# sudo mkswap ./swapfile
# sudo swapon /home/swap/swapfile


# nixos配置
  swapDevices = [
    {
        device = "/dev/nvme0n1p3";
    }
    {
        device = "/home/swap/swapfile";
    }
  ];