系统:debian12,claw-jp测试通过
前言
根据友佬@crzax的帖子 https://www.nodeseek.com/post-69126-1
制作的一键开启zram脚本
脚本
curl -sS -O https://raw.githubusercontent.com/woniu336/open_shell/main/zram_manager.sh && chmod +x zram_manager.sh && ./zram_manager.sh
预览:
===== zRAM 管理工具 =====
1. 安装并配置zRAM
2. 卸载zRAM
3. 查看系统状态
4. 验证zRAM运行状态
0. 退出
请选择操作 [0-4]:
查看状态:
===== 系统状态 =====
>> 物理内存大小:0GB
>> SWAP状态:
NAME TYPE SIZE USED PRIO
/swapfile file 1024M 0B -2
/dev/zram0 partition 923M 0B 100
>> 块设备信息:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
zram0 252:0 0 923M 0 disk [SWAP]
vda 254:0 0 20G 0 disk
├─vda1 254:1 0 19.9G 0 part /
├─vda14 254:14 0 3M 0 part
└─vda15 254:15 0 124M 0 part /boot/efi
>> zRAM压缩算法:
lzo lzo-rle lz4 lz4hc [zstd]
>> zRAM大小:
923MB
>> 内存使用情况:
total used free shared buff/cache available
Mem: 923Mi 266Mi 685Mi 496Ki 82Mi 657Mi
Swap: 1.9Gi 0B 1.9Gi
按回车键继续...
解释:
- /swapfile file 1024M 0B -2
- /dev/zram0 partition 923M 0B 100
- 默认使用zstd算法
100代表最高优先级,优先使用zram
swap+zram的总和是 1.9G大小
测压
安装 stress 工具
sudo apt install stress
测试
stress --vm 1 --vm-bytes 1G --timeout 60s
这将启动一个 stress 进程,它会尝试分配 1GB 的内存并保持该状态持续 60 秒
因为我的物理内存是 1G, 所以我使用 1G 测试,当 zram 耗尽时,就会启用 swap
可以另外开一个窗口,使用 top 命令查看系统状态
分析
zramctl --output-all
结果
root@s26417:~# zramctl --output-all
NAME DISKSIZE DATA COMPR ALGORITHM STREAMS ZERO-PAGES TOTAL MEM-LIMIT MEM-USED MIGRATED MOUNTPOINT
/dev/zram0 1G 61.4M 9.6M zstd 1 4326 10.5M 0B 13.2M 1.3K [SWAP]
root@s26417:~#
分析
从数据可以看出:
压缩效果很好:61.4MB 的数据压缩后只占用 9.6MB,压缩率约为 6.4:1
这个 zram 设备被配置为交换分区使用
系统实际使用了 13.2MB 内存来管理这个 zram 设备
这表明 zram 正在有效地工作,通过内存压缩来提供额外的交换空间。
完结