bernardodemarco commented on issue #12908: URL: https://github.com/apache/cloudstack/issues/12908#issuecomment-4157384560
Hello, @weizhouapache > proposal looks good overall. Thanks! > If I understand correctly, this means setting maxMemory for VMs with dynamic scaling enabled, right? The domain XML of VMs prepared for dynamic scaling includes both `vcpu` element, whose value defines the upper limit for vCPUs, and the `maxMemory` element, whose value defines the upper limit for memory. Both are required by KVM to enable live scaling. > I am wondering whether using global configurations is the best approach. Using global configurations is already the approach adopted by ACS. As described in the spec, for custom unconstrained offerings, the value of the `maxMemory` element is derived from the `vm.serviceoffering.ram.size.max` global setting, and the `vcpus` element is derived from the the `vm.serviceoffering.cpu.cores.max` setting. The new settings are introduced to: (i) better separate goals and responsibilities, since the existing settings are also used by unrelated workflows; and (ii) change their scope to be cluster-wide. > In most cases, users tend to scale CPU/memory relative to the current VM size rather than relying on a fixed global limit. For end-users, the upper limit for memory and CPU are transparent. The settings `kvm.memory.dynamic.scaling.capacity` and `kvm.cpu.dynamic.scaling.capacity` are intended for operators to define a cluster-wide upper bound for the XML element values. In most cases, these settings will be set to `0` (default value), meaning that the host's maximum CPU and memory capacity will be used to determine the limits. Custom limits are expected to be used only in specific edge scenarios. > For example: > Relative scaling (e.g., doubling): 2GB → 4GB, 4GB → 8GB, 8GB → 16GB > Fixed increment scaling: 2GB → 4GB, 4GB → 6GB, 8GB → 10GB > Would it make more sense to support scaling policies based on the current allocation instead of a global maximum? Yes, this makes total sense. However, it is a new concept that ACS currently does not support. The current proposal focuses on leveraging existing features of ACS, i.e., it aims to enable changing the service offering of a VM dynamically, as it is currently already supported for other hypervisors. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
