correajl opened a new issue, #6743:
URL: https://github.com/apache/cloudstack/issues/6743
##### ISSUE TYPE
* Improvement Request
##### COMPONENT NAME
~~~
Cloudstack management and cloudstack agent.
~~~
##### CLOUDSTACK VERSION
~~~
4.17.0.1
~~~
##### CONFIGURATION
2 management servers, 2 databases, advanced network, everything working
fine.
##### OS / ENVIRONMENT
Ubuntu Server 22.04 LTS, KVM, libvirt 8.0.0-1ubuntu7.1, cgroup2.
##### SUMMARY
The value "CPU (in MHz)" used by Compute Offerings has nothing to do with
the CPU speed when using KVM. The value configured as "CPU (in MHz)" is mapped
to "shares" element in the cputune section of libvirt configuration of domain
(KVM). This mapping is done using
[this](https://github.com/apache/cloudstack/blob/731a83babfb371b9ee9bb18af9bd33ade7f2c774/engine/orchestration/src/main/java/com/cloud/vm/VirtualMachineManagerImpl.java#L4522)
```
int minSpeed = (int)(newServiceOffering.getSpeed() /
(divideCpuByOverprovisioning ? cpuOvercommitRatio : 1));
```
So, if I have a 1000 Mhz value in compute offering and try to launch a VM
with 80 CPUs, I will get 80000 configured as 'shares' value. 'Shares' is a
relative value that defines how much CPU time a VM will have when compared to
others. This description in MHz is very confusing.
The second problem is why is this value required when creating a custom
constrained compute offering? Why couldn't we just inform the number of CPUs
and memory to limit the ranges that service offering permits? In UI the value
is required. Looking at
createServiceOffering API definition the only two required parameters are
displaytext and name. But trying to create I have:
```.shell-session
~# create serviceoffering name="Custom VM" displaytext="Custom VM"
storagetype=shared provisioningtype=fat mincpunumber=2 maxcpunumber=80
minmemory=1000 maxmemory=1000000 offerha=true dynamicscalingenabled=true
Error: (HTTP 431, error code 4350) For creating a custom compute offering
min/max cpu and min/max memory/cpu speed should all be null or all specified
```
My first suggestion is to permit the creation of a compute offering without
inform this value. If this is not possible for some reason, so my suggestion
is to change the description of this value in some way. For KVM users/admins,
this MHz notation is so confusing.
##### STEPS TO REPRODUCE
In UI the value "CPU (in MHz)" when creating a custom constrained compute
offering not to be required. The same when using API.
Or, change the "CPU (in MHz)" to something more representative, that makes
more sense.
##### EXPECTED RESULTS
Do not inform "CPU (in MHz)" or have a better description when using KVM as
hypervisor.
##### ACTUAL RESULTS
Sometimes, depending on the value entered in "CPU (in MHz)" the hypervisor
can't launch the instance.
--
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]