salt/states/roles/maintain/host/balloon.sh
2023-12-25 23:34:07 -06:00

21 lines
565 B
Bash

for domain in `virsh list --name`
do
virsh dommemstat --period 5 $domain
max=`virsh dominfo $domain | grep Max | grep -Po "\d+"`
current=`virsh dominfo $domain | grep Used | grep -Po "\d+"`
unused=`virsh dommemstat $domain | grep unused | grep -Po "\d+"`
used=$(($current - $unused))
newfree=$((($max - $used) / 5))
if test $newfree -gt 524288
then
target=$(($newfree + $used))
else
target=$((524288 + $used))
fi
if test $target -gt $max
then
target=$max
fi
echo "$domain: $target"
virsh setmem $domain --size $target
done