Hi Jorge, Just looking at question 1, you are correct, but it also takes into account CPU overcommit ratio: https://github.com/apache/cloudstack/blob/731a83babfb371b9ee9bb18af9bd33ade7f2c774/engine/orchestration/src/main/java/com/cloud/vm/VirtualMachineManagerImpl.java#L4522 <https://github.com/apache/cloudstack/blob/731a83babfb371b9ee9bb18af9bd33ade7f2c774/engine/orchestration/src/main/java/com/cloud/vm/VirtualMachineManagerImpl.java#L4522>
If you have a suggestion to fix this or want to bring more attention to it, you're more than welcome to create an issue on the project page: https://github.com/apache/cloudstack/issues <https://github.com/apache/cloudstack/issues> The shares option configures the share of CPU time allocated to the guests. This indeed has no relation to the clock speed assigned to the guest. Question 2 I cannot answer. Regarding question 3: Ubuntu 22.04 is not supported, indeed. But yes, the way you're configuring this does imply that a guest with 80 shares assigned will receive more CPU time than a guest with 10 shares, although I don't think that this is what you'd want to do. This is also the way CS would do it with any other number configured as CPU in MHz. Met vriendelijke groet / Kind regards, Ruben Bosch CLDIN > On 5 Sep 2022, at 21:33, Jorge Luiz Correa > <jorge.l.cor...@embrapa.br.INVALID> wrote: > > Hi! I'm having some problems related to the creation of a new service > offering. I need to create one using the "Custom constrained" option to > limit CPUs and memory. But, when "Custom constrained" is selected "CPU (in > MHz)" is required. > > (1) The first problem is that "CPU (in MHz)" has nothing to do with the CPU > speed, right? The value configured as "CPU (in MHz)" is mapped to "shares" > element in the cputune section of libvirt configuration of domain (KVM). > Apparently this mapping is done using (N. CPUs) * CPU (in MHz). So, if I > have a 1000 Mhz value in service 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. Could this be changed? > > (2) The second problem is why is this value required? 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: > > 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 > > (3) The third problem is about the value of "CPU (in MHz)". According to ( > libvirt.org/formatdomain.html) the value should be in range [2, 262144]. > But, for operating systems using cgroup v2 the maximum value is 10000. I > know that Ubuntu 22.04 I'm using here is not supported yet. But this will > be an issue as other OSs adopt cgroup v2 too. So, I think this parameter > deserves attention. If the value of (N. CPU) * CPU (in MHz) is greater than > 10000 I get "Value specified in CPUWeight is out of range" in hypervisor. > > As a workaround I configured service offering with 1 Mhz. This implies that > VMs with more CPUs have much more chance to get the CPU than VMs with lower > number of CPUs, because besides having more CPUs, they have more chance to > get the host' CPUs. > > VM1 10 CPU * 1 MHz -> shares = 10 > VM2 80 CPU * 1 MHz -> shares = 80 > > If we look at 1 CPU of VM2, it will have 8 times more chance to get the > host's CPU than 1 CPU of VM1, right? > > Thank you! > :) > > -- > Jorge Luiz CorrĂȘa > Embrapa Agricultura Digital > > echo "CkpvcmdlIEx1aXogQ29ycmVhCkFu > YWxpc3RhIGRlIFJlZGVzIGUgU2VndXJhbm > NhCkVtYnJhcGEgQWdyaWN1bHR1cmEgRGln > aXRhbCAtIE5USQpBdi4gQW5kcmUgVG9zZW > xsbywgMjA5IChCYXJhbyBHZXJhbGRvKQpD > RVAgMTMwODMtODg2IC0gQ2FtcGluYXMsIF > NQClRlbGVmb25lOiAoMTkpIDMyMTEtNTg4 > Mgpqb3JnZS5sLmNvcnJlYUBlbWJyYXBhLm > JyCgo="|base64 -d > > -- > __________________________ > Aviso de confidencialidade > > Esta mensagem da > Empresa Brasileira de Pesquisa Agropecuaria (Embrapa), empresa publica > federal regida pelo disposto na Lei Federal no. 5.851, de 7 de dezembro > de 1972, e enviada exclusivamente a seu destinatario e pode conter > informacoes confidenciais, protegidas por sigilo profissional. Sua > utilizacao desautorizada e ilegal e sujeita o infrator as penas da lei. > Se voce a recebeu indevidamente, queira, por gentileza, reenvia-la ao > emitente, esclarecendo o equivoco. > > Confidentiality note > > This message from > Empresa Brasileira de Pesquisa Agropecuaria (Embrapa), a government > company established under Brazilian law (5.851/72), is directed > exclusively to its addressee and may contain confidential data, > protected under professional secrecy rules. Its unauthorized use is > illegal and may subject the transgressor to the law's penalties. If you > are not the addressee, please send it back, elucidating the failure.