diff --git a/getzfsarccache.sh b/getzfsarccache.sh new file mode 100644 index 0000000..db1fc6b --- /dev/null +++ b/getzfsarccache.sh @@ -0,0 +1,46 @@ +#!/bin/bash +intv="$1" + +if [ -z $intv ] +then + intv=5 +fi + +prevhits=0 +prevmisses=0 + +i=0 + +while true +do + + stats=`cat /proc/spl/kstat/zfs/arcstats` + hit=`echo "$stats" | grep -w hits | awk '{ print $3}'` + miss=`echo "$stats" | grep -w misses | awk '{ print $3}'` + + + hitrate=$(((hit-prevhits)/intv)) + missrate=$(((miss-prevmisses)/intv)) + + prevhits=$hit + prevmisses=$miss + + req=$((hitrate+missrate)) + + if [ "$hitrate" != 0 ] && [ "$req" != 0 ] + then + hitper=`echo "scale=2; (($hitrate / $req) * 100)" | bc` + else + hitper=0 + fi + + if [ "$i" -gt 0 ] + then + echo "IOPs: $req | ARC cache hit ratio: $hitper % | Hitrate: $hitrate / Missrate: $missrate" + else + echo "Loading" + fi + + ((i++)) + sleep $intv +done \ No newline at end of file