Admin
利用部分内存压缩作为交换,比磁盘 swap 快得多。
# 安装sudo pacman -S zram-generator # 与新内核 (6.18) 不兼容,改用手动 service# 手动 service 方案sudo tee /etc/systemd/system/zram-swap.service << 'EOF'[Unit]Description=ZRAM swapAfter=local-fs.target[Service]Type=oneshotExecStartPre=/sbin/modprobe zram num_devices=1ExecStart=/bin/sh -c 'echo lz4 > /sys/block/zram0/comp_algorithm; echo 16G > /sys/block/zram0/disksize; mkswap /dev/zram0; swapon -p 100 /dev/zram0'ExecStop=/sbin/swapoff /dev/zram0RemainAfterExit=yes[Install]WantedBy=multi-user.targetEOFsudo systemctl daemon-reloadsudo systemctl enable --now zram-swap
实时调整大小(先 reset):
sudo swapoff /dev/zram0echo 1 | sudo tee /sys/block/zram0/resetecho lz4 | sudo tee /sys/block/zram0/comp_algorithmecho 16G | sudo tee /sys/block/zram0/disksizesudo mkswap /dev/zram0sudo swapon -p 100 /dev/zram0
sudo pacman -S earlyoomsudo systemctl enable --now earlyoom
默认配置:
优先级低于 zram,zram 满后才写入磁盘:
sudo fallocate -l 8G /swapfilesudo chmod 600 /swapfilesudo mkswap /swapfilesudo swapon -p 0 /swapfileecho '/swapfile none swap defaults,pri=0 0' | sudo tee -a /etc/fstab
zramctl:NAME ALGORITHM DISKSIZE DATA COMPR TOTAL STREAMS MOUNTPOINT/dev/zram0 lz4 15.5G 4K 64B 20K [SWAP]swapon:NAME TYPE SIZE USED PRIO/dev/zram0 partition 15.5G 0B 100内存: 30G 总 / 22G 使用交换: 15G / 0B 使用earlyoom 运行中,内存告急时自动干预。