Added auto-ballooning
This commit is contained in:
parent
a8d74f2ea7
commit
0c74876b91
4 changed files with 72 additions and 0 deletions
10
states/roles/maintain/host/balloon.service
Normal file
10
states/roles/maintain/host/balloon.service
Normal file
|
@ -0,0 +1,10 @@
|
|||
[Unit]
|
||||
Description=Automatically adjust balloon size to free up unused memory
|
||||
|
||||
[Service]
|
||||
Type=oneshot
|
||||
RemainAfterExit=no
|
||||
ExecStart=/bin/bash /root/scripts/balloon.sh
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
21
states/roles/maintain/host/balloon.sh
Normal file
21
states/roles/maintain/host/balloon.sh
Normal file
|
@ -0,0 +1,21 @@
|
|||
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
|
9
states/roles/maintain/host/balloon.timer
Normal file
9
states/roles/maintain/host/balloon.timer
Normal file
|
@ -0,0 +1,9 @@
|
|||
[Unit]
|
||||
Description=Update balloon sizes every 10 minutes
|
||||
|
||||
[Timer]
|
||||
OnCalendar=*:0/10
|
||||
Unit=balloon.service
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
|
@ -99,3 +99,35 @@ libvirtd:
|
|||
# - file: /etc/systemd/network/br1.netdev
|
||||
# - file: /etc/systemd/network/br1.network
|
||||
# - file: /etc/systemd/network/uplink.network
|
||||
|
||||
|
||||
/root/scripts/balloon.sh:
|
||||
file.managed:
|
||||
- source: salt://roles/maintain/host/balloon.sh
|
||||
- user: root
|
||||
- group: root
|
||||
- mode: 644
|
||||
|
||||
/lib/systemd/system/balloon.service:
|
||||
file.managed:
|
||||
- source: salt://roles/maintain/host/balloon.service
|
||||
- user: root
|
||||
- group: root
|
||||
- mode: 644
|
||||
|
||||
/lib/systemd/system/balloon.timer:
|
||||
file.managed:
|
||||
- source: salt://roles/maintain/host/balloon.timer
|
||||
- user: root
|
||||
- group: root
|
||||
- mode: 644
|
||||
|
||||
balloon-reload:
|
||||
module.run:
|
||||
- name: service.systemctl_reload
|
||||
- onchanges:
|
||||
- file: /lib/systemd/system/*
|
||||
|
||||
balloon.timer:
|
||||
service.running:
|
||||
- enable: true
|
||||
|
|
Loading…
Add table
Reference in a new issue