scripts/pve_mem-overview.sh

26 lines
928 B
Bash

#!/bin/bash
# Memory state with use of "free"
MEM_TOTAL=$(free -m | awk '/^Mem:/ { print $2 } ')
MEM_USED=$(free -m | awk '/^Mem:/ { print $3 } ')
# ARC state with use of "/proc/spl/kstat/zfs/arcstats"
FLOAT_ARC_USED=$(awk '/^size/ { print $3 / 1048576 }' < /proc/spl/kstat/zfs/arcstats)
INT_ARC_USED=${FLOAT_ARC_USED%.*}
# Calculated values
MEM_SYSTEM=$(($MEM_USED-INT_ARC_USED))
MEM_AVAILABLE=$(($MEM_TOTAL-$MEM_SYSTEM))
# output
echo -e "\nMemory overview:\n"
printf "\nTotal Memory:,Used Memory:,Available Memory:,Memory ARC:,Memory Sys & KVM:\n$MEM_TOTAL MiB,$MEM_USED MiB,$MEM_AVAILABLE MiB,$INT_ARC_USED MiB,$MEM_SYSTEM MiB\n\n" | column -t -s ','
echo -e "\nOutput definition:"
echo -e "Total Memory: Memory installed on system
Available Memory: ['Total Memory' - 'Memory Sys & KVM']
Memory ARC: Memory used by ZFS RAM cache (ARC)
Memory Sys & KVM: Memory used by containers, VMs and system\n" | column -t -s ' '