É possível limitar / limitar falhas de página com virtualização de contêineres LXC?

2

É possível limitar um contêiner a 512 MB de RAM e 4 GB de swap. No entanto, se esse contêiner usa memória freqüentemente que foi trocada, não dominaria os recursos de IO do (s) dispositivo (s) de armazenamento que contém o (s) arquivo (s) de troca? O que eu quero evitar é que um contêiner fixe o dispositivo de armazenamento a 100% de utilização e deixe de lado outros contêineres que tenham demandas mais modestas de swap. O ideal é que cada contêiner receba sua parcela justa sob carga e seja capaz de irromper além disso quando a carga permitir.

Agora eu sei que existem limites de blkio, e parece bastante simples limitá-los, mas tecnicamente é o kernel que está fazendo a troca, então eu não sei se respeita essas limitações ou conta as falhas de página em relação a esses limites. / p>

Alguém sabe se isso é possível ou como configurá-lo se for?

edit: O OpenVZ tem algo chamado vswap, que irá controlar um contêiner que está trocando mesmo que o sistema tenha folga suficiente para que as páginas de "swap" estejam na RAM e não vá para o disco eles. Isso parece ser o que eu estou procurando. Existe alguma maneira de fazer isso com recipientes Linux "vanilla"?

    
por Eloff 06.07.2013 / 20:48

1 resposta

1

Se você está regularmente fora de IO em seus hipervisores ... você fez errado. Essa é sempre a batalha. As falhas de página não são algo que pode ser limitado ... porque são o resultado de uma falta de recursos. A única maneira de reduzir / eliminar falhas de página é adicionar mais RAM física ou reduzir / remover o espaço de troca. As falhas de página (apesar do nome) nem sempre implicam em um "erro". Significa simplesmente que quando um aplicativo tenta acessar o segmento de memória virtual da RAM ... ele não está mais disponível e precisa relê-lo a partir do disco.

Parece que suas instâncias não têm RAM suficiente ... e você está tentando resolver o problema com um arquivo de troca. Arquivos de swap não devem ser confiáveis. Eles são úteis apenas em situações em que você ocasionalmente precisa ficar acima da RAM física limitada por um breve período de tempo.

A única maneira de reduzir atrasos no IO ... é fornecer mais IO ... ou reduzir / limitar o uso em IO. Reduzir / limitar resultaria em instâncias que acontecem terrivelmente ... e pode criar gargalos adicionais na CPU tentando implementar cotas no IO.

    
por 07.07.2013 / 04:14