Hugo博客公告弹窗

一键开启zram内存脚本,解决硬盘读写不佳(或容量小)的鸡鸡

系统: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 正在有效地工作,通过内存压缩来提供额外的交换空间。

完结

CC BY-NC-SA 4.0 转载请注明
最后更新于 2025-03-10 04:33
clarity统计