教程前的一些说明
飞牛出于保护emmc的角度出发,arm设备的swap是用过zram的方式创建的,路径:
/etc/systemd/zram-generator.conf
配置为内存的1/2。
我使用的是某o开头的热门3566机型,内存4G,zram空间2G,因为我使用的docker容器较多,有时候内存还是会告急,但是zram最好别配置太多,因为它占用的是物理内存,当 zRAM 大小为 4GB 时,系统会预留 4GB 的内存用于存储压缩数据。
如果物理内存只有 4GB,那么 所有内存都可能被 zRAM 占据,运行其他程序时可能没有空闲内存,导致频繁压缩/解压,甚至触发 OOM(内存耗尽)被内核杀掉进程。
所以使用太多后,反而会起反作用,目前默认的1/2 ram的配置就已经挺合适了。为了扩展更多的内存,我选择在我安装的sata固态上再创建一个swapfile来扩展更多的内存。
配置流程
# 1. 创建swap子卷
sudo btrfs subvolume create /vol1/@swap
# 2. 使用专用命令创建swap文件(自动处理所有限制)
sudo btrfs filesystem mkswapfile --size 4G /vol1/@swap/swapfile
# 3. 启用swap
sudo swapon -p 50 /vol1/@swap/swapfile
# 4. 设置开机自动启用
echo '/vol1/@swap/swapfile none swap sw,pri=50 0 0' | sudo tee -a /etc/fstab
# 5. 验证
sudo swapon --show
free -h