21 lines
565 B
Bash
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
|