KVM sob CentOS, swap esgotado, memória física disponível

1

Eu tive um teste do host CentOS KVM rodando por cerca de uma semana agora com 3 convidados do CentOS. Há 12 GB de RAM física com cerca de 7,5 GB realmente alocados para VMs. Essas VMs ainda não estão sendo usadas, pois o servidor ainda está em fase de testes, mas notei que o uso de swap estava aumentando nas últimas 24 a 48 horas. Agora parece que está esgotado.

Aqui está a saída de free

# free -m
             total       used       free     shared    buffers     cached
Mem:         11905      11749        155          0         81       4632
-/+ buffers/cache:       7035       4869
Swap:         2047       2047          0

Então, como você pode ver, a memória física é usada, mas é usada como memória em cache, o que acredito ser geralmente bom, já que isso será liberado se um aplicativo precisar dela.

Eu executei o script de shell encontrado em esta resposta , que listou 3 qemu-kvm process.

O servidor foi provisionado para mim com apenas um volume lógico de 2 GB alocado para swap e normalmente gosto de corresponder a memória física a até 8 GB. Vale a pena expandir o volume lógico de troca ou adicionar um volume de troca separado?

Isso é comum com o KVM? Não é algo que eu vi em outros hosts KVM, então existe uma configuração específica que eu preciso ajustar?

Algum outro comentário / sugestão?

    
por batfastad 15.11.2013 / 23:18

2 respostas

2

Isso é normal. Páginas usadas por VMs ociosas serão trocadas e a memória será usada para cache. Você pode definir swappiness como zero, o que pode impedir que o swap seja usado assim ao custo do desempenho (cache menor).

Aqui está a recomendação da Red Hat (com muitos YMMVs):

The swap space is calculated as follows:

Calculate the amount of memory needed for the sum of all the guests - In this example: (50 guests * 1GB of memory per guest) = 50GB

Add the guest memory amount to the amount needed for the host OS and for the host minimum swap space - In this example: 50GB guest memory + 4GB host OS + 4GB minimal swap = 58GB

Subtract this amount from the amount of physical RAM there is on the system - In this example 58GB - 32GB = 26GB

The answer is the amount of swap space that needs to be allocated. In this example 26GB

Este exemplo não leva em consideração a mesclagem de mesma página (KSM) do kernel, que reduzirá a quantidade de memória usada.

Aqui RH está dizendo 4G swap para host, mas aqui eles recomendam 12G * 0,5 = 6G swap para você.

Se você é novo no KVM, recomendo a leitura das Melhores Práticas para o KVM documento.

    
por 16.11.2013 / 01:05
0

Na minha experiência não, não vale a pena atribuir swap extra. Você estará usando swap (HDD) como RAM, e RAM como cache (atalho para HDD) .... soa praticamente contraproducente. Normalmente, em um sistema com 8GB de RAM, atribuo 1-2GB de swap, geralmente o restante de um esquema de partição de raid. Exemplo:

SSD de 3 x 64 GB (OS / Raid0 de software) 2x1TB SATA (Data Raid1)

Eu configurarei meu primeiro SSD como 1GB em / boot, deixando 2x1GB desperdiçados depois que eu fizer o restante dos drives com particionamento idêntico. Soa como swap no Raid0, e geralmente ele não é acessado de qualquer maneira.

Quanto ao KVM, eu examinaria os relatórios de bugs, assim como a solução de problemas das máquinas convidadas individuais. Poderia haver um vazamento de memória em ambos?

    
por 15.11.2013 / 23:42