You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
qubes-installer-qubes-os/anaconda/scripts/zram-stats

65 lines
1.2 KiB

#!/bin/bash
##
# Show stats for all (initialized) zram devices
# Author: Nitin Gupta
#
stats=(
"disksize"
"num_reads"
"num_writes"
"invalid_io"
# "discard"
"notify_free"
"zero_pages"
"orig_data_size"
"compr_data_size"
"mem_used_total"
)
function get_stat()
{
local _dev=$1
local _stat=$2
cat $dev/$_stat
}
function show_stat()
{
local _name=$1
local _val=$2
local _unit=$3
printf "%-16s %11d %s\n" "$_name:" "$_val" "$_unit"
}
#for dev in `find /sys/block -name 'zram*'`; do
find /sys/block -name 'zram*' | while read dev; do
orig=0
compr=0
total=0
is_init=$(get_stat $dev initstate)
# Show stats only for initialized devices
[ "$is_init" == 1 ] || continue
echo "$dev"
for stat in "${stats[@]}"; do
val=$(get_stat $dev $stat)
eval __$stat=$val # ex: __disksize=$disksize
show_stat $stat $val
done
[ "$__orig_data_size" == "0" ] && continue;
cratio=$(echo "print $__compr_data_size*100/$__orig_data_size" | python | tr -d '\n')
show_stat "avg_compr_ratio" $cratio "%"
# Memory wasted due to fragmentation, metadata overhead etc.
ovhd=$(echo "print ($__mem_used_total - $__compr_data_size) * 100 / \
$__compr_data_size" | python | tr -d '\n')
show_stat "mem_overhead" $ovhd "%"
echo
done