我有一个脚本,可以收集各种系统数据并通过 MQTT 将其报告给中央本地服务器。我最近实现了 zram 的优先级高于交换,看看这是否能提高性能。作为监控的一部分,我需要能够计算 zram 的使用百分比,以便可以报告它。
我知道我可以使用以下命令查看 swap 和 zram 的基本统计信息:
cat /proc/swap
或者swapon -s
Filename Type Size Used Priority
/var/swap file 102396 0 -2
/dev/zram0 partition 5055516 170752 5
或者
zramctl
NAME ALGORITHM DISKSIZE DATA COMPR TOTAL STREAMS MOUNTPOINT
/dev/zram0 lz4 4.8G 165.5M 58.4M 62.8M 4 [SWAP]
但这些不显示已使用的百分比,并且在前 2 个命令的情况下还报告标准交换。有没有办法在单行命令中确定并输出使用的 zram 的百分比而不输出其他内容?
编辑:它看起来swapon -s
提供了最容易使用的结果,因为它在 zram 行中给出了大小和使用值。如果有人可以提供一种仅返回 %used 的方法,我将非常感激。
谢谢。
答案1
您应该能够从swapon -s
输出中轻松完成此操作:
$ swapon -s | awk '$1~/\/zram/{printf "%.2f%%\n", ($4/$3)*100}'
3.38%