Merge pull request #766 from kmccormick/CLOUDSTACK-8678

CLOUDSTACK-8678: Reserve RAM for KVM host OSUse host.reserved.ram.mb agent property to modify total system RAM
before reporting to management server.

* pr/766:
  CLOUDSTACK-8678: Reserve RAM for KVM host OS

Signed-off-by: Remi Bergsma <github@remi.nl>
This commit is contained in:
Remi Bergsma 2015-09-05 09:10:57 +02:00
commit 1077f86144
1 changed files with 7 additions and 9 deletions

View File

@ -263,7 +263,7 @@ public class LibvirtComputingResource extends ServerResourceBase implements Serv
private String _updateHostPasswdPath;
private int _dom0MinMem;
private long _dom0MinMem;
protected boolean _disconnected = true;
protected int _cmdsTimeout;
@ -791,7 +791,8 @@ public class LibvirtComputingResource extends ServerResourceBase implements Serv
_videoRam = NumbersUtil.parseInt(value, 0);
value = (String)params.get("host.reserved.mem.mb");
_dom0MinMem = NumbersUtil.parseInt(value, 0) * 1024 * 1024;
// Reserve 1GB unless admin overrides
_dom0MinMem = NumbersUtil.parseInt(value, 1024) * 1024 * 1024L;
value = (String) params.get("kvmclock.disable");
if (Boolean.parseBoolean(value)) {
@ -2605,16 +2606,13 @@ public class LibvirtComputingResource extends ServerResourceBase implements Serv
info.add((int)cpus);
info.add(speed);
// Report system's RAM as actual RAM minus host OS reserved RAM
ram = ram - _dom0MinMem;
info.add(ram);
info.add(cap);
long dom0ram = Math.min(ram / 10, 768 * 1024 * 1024L);// save a maximum
// of 10% of
// system ram or
// 768M
dom0ram = Math.max(dom0ram, _dom0MinMem);
info.add(dom0ram);
info.add(_dom0MinMem);
info.add(cpuSockets);
s_logger.debug("cpus=" + cpus + ", speed=" + speed + ", ram=" + ram + ", dom0ram=" + dom0ram + ", cpu sockets=" + cpuSockets);
s_logger.debug("cpus=" + cpus + ", speed=" + speed + ", ram=" + ram + ", _dom0MinMem=" + _dom0MinMem + ", cpu sockets=" + cpuSockets);
return info;
}