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.

Reply via email to