mirror of
https://github.com/apache/cloudstack.git
synced 2025-11-02 20:02:29 +01:00
CLOUDSTACK-8678: Reserve RAM for KVM host OS
Use host.reserved.ram.mb agent property to modify total system RAM before reporting to management server. Remove dom0ram variable and its min/max calculation. Just reserve a default of 1GB, unless overridden by host.reserved.mem.mb property.
This commit is contained in:
parent
dd9ba48efa
commit
99d20234d4
16
plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java
Normal file → Executable file
16
plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java
Normal file → Executable 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;
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user