<html>
<head>
<meta content="text/html; charset=ISO-8859-1"
http-equiv="Content-Type">
</head>
<body text="#000000" bgcolor="#FFFFFF">
<div class="moz-cite-prefix">On 08/16/2013 10:05 AM, Janssen dos
Reis Lima wrote:<br>
</div>
<blockquote
cite="mid:CALRfP=jyn5-LHGCTPg9qn7oeN0a2M_3u9GMsnUNch4J-timkeg@mail.gmail.com"
type="cite">
<div dir="ltr">
<div>Pessoal,</div>
<div><br>
</div>
<div>Não é toda hora que acontece, mas algumas vezes quando eu
vou iniciar uma VM, aparece a seguinte mensagem de erro:</div>
<br clear="all">
<div><b>Error while executing action: Cannot run VM. Host swap
percentage is above the defined threshold.<br>
- Check your configuration parameters for Host Swap
Percentage.</b><br>
</div>
</div>
</blockquote>
<br>
A mensagem é clara. Há muita swap sendo usada e para garantir o bom
funcionamento do Host, a nova VM não pode ser iniciada.<br>
<br>
<blockquote
cite="mid:CALRfP=jyn5-LHGCTPg9qn7oeN0a2M_3u9GMsnUNch4J-timkeg@mail.gmail.com"
type="cite">
<div dir="ltr">
<div><br>
</div>
<div>Estou rodando o oVirt em um micro Core2 Duo, 4 GB RAM.</div>
<div>No momento tenho livre de Swap 3,1 GB de 4 GB disponível.</div>
<div>Estou rodando 2 VM's, uma configurada para 512 MB de RAM e
outra com 1GB de RAM, ambas com 1 processador cada. Sei que
não é o ambiente ideal para eu fazer um teste deste, mas quero
entender tudo quanto que é mensagem de erro</div>
</div>
</blockquote>
<br>
Ok, pra entender temos que ver a implementação dela:<br>
<br>
<br>
No arquivo
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/scheduling/policyunits/MemoryPolicyUnit.java:<br>
--------------------------<br>
...<br>
51 private boolean isVMSwapValueLegal(VDS host) {<br>
...<br>
61 long swap_total = host.getSwapTotal();<br>
62 long swap_free = host.getSwapFree();<br>
63 long mem_available = host.getMemAvailable();<br>
64 long physical_mem_mb = host.getPhysicalMemMb();<br>
65 <br>
66 return ((swap_total - swap_free - mem_available) * 100 /
physical_mem_mb) <= Config<br>
67 .<Integer>
GetValue(ConfigValues.BlockMigrationOnSwapUsagePercentage);<br>
68 }<br>
--------------------------<br>
<br>
Na linha 66 o cálculo fica claro.<br>
Em outras palavras, se você tiver mais swap sendo usada do que
memória RAM livre, uma nova VM não vai rodar.<br>
Deduzo que quem implementou isso queria garantir que havia memória
RAM suficiente para alocar toda a swap usada. Caso contrário, uma
nova VM não poderá ser iniciada.<br>
Ainda de acordo com o código, você pode mudar esse comportamento
usando a config "BlockMigrationOnSwapUsagePercentage" (nome pouco
intuitivo pra esse caso :/... ). O padrão pra essa config é 0:<br>
<br>
# engine-config -g BlockMigrationOnSwapUsagePercentage<br>
BlockMigrationOnSwapUsagePercentage: 0 version: general<br>
<br>
Onde 0 é um valor percentual. Se você mudar pra 10, por exemplo,
significa que a relação entre swap usada e RAM livre pode ser até
10% do valor da RAM total. Enrolado? Tb achei ;)<br>
<br>
<br>
<br>
<br>
<blockquote
cite="mid:CALRfP=jyn5-LHGCTPg9qn7oeN0a2M_3u9GMsnUNch4J-timkeg@mail.gmail.com"
type="cite">
<div dir="ltr">
<div><br>
</div>
<div><br>
</div>
<div>Aproveitando, se eu quiser 8 servidores virtuais, cada um
com 4 GB de RAM e 2 processadores, qual seria o hardware
necessário para o oVirt?</div>
</div>
</blockquote>
<br>
Não faço ideia. "Depende do workload" seria a melhor resposta... mas
deve ter gente aqui na lista com mais experiência em implementações
reais e que poderia dar alguns exemplos. Esperemos.<br>
<br>
--<br>
Pahim<br>
</body>
</html>