Como os contêineres virtuais KVM consomem RAM?

1

Eu tenho um servidor físico em execução com 47 GB de RAM e exatamente o mesmo espaço de troca. O espaço do disco rígido é de 228 GB.

Eu lancei 92 contêineres (KVMs) e aloquei 2560 MB de RAM para cada contêiner.

O status atual da memória livre parece bom:

ubuntu@ubuntu:~$ free -h
              total        used        free      shared  buff/cache   available
Mem:            47G         43G        263M         18M        3.0G        2.8G
Swap:           47G         17G         30G

O armazenamento do HDD:

ubuntu@ubuntu:~$ df -h
Filesystem      Size  Used Avail Use% Mounted on
udev             24G     0   24G   0% /dev
tmpfs           4.8G   23M  4.7G   1% /run
/dev/sda1       228G   33G  184G  15% /
tmpfs            24G     0   24G   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs            24G     0   24G   0% /sys/fs/cgroup
tmpfs           4.8G     0  4.8G   0% /run/user/1000
cgmfs           100K     0  100K   0% /run/cgmanager/fs
ubuntu@ubuntu:~$ 

Agora minhas perguntas são:

  1. Como faço para determinar o limite superior do número máximo de KVM contêineres que podem ser lançados?
  2. O KVM também usa o espaço de troca disponível fora do sistema?
por Nishant Singh 05.08.2016 / 10:59

1 resposta

2
  1. É difícil determinar exatamente quantos contêineres você pode executar porque você não sabe até executá-los e eles começaram a usar a RAM. O Linux aloca RAM apenas para um processo quando realmente o usa, não quando ele solicita. É por isso que você pode executar VMs de 235,5 GB (92 x 2560 MB) em apenas 47 GB de RAM + 47 GB de troca.

  2. Sim. VMs e contêineres são processos do Linux como qualquer outro. Eles podem e serão trocados quando algo exigir RAM.

  3. Eu recomendo strongmente habilitar o zswap no seu servidor, para que o linux comprima os dados trocados, primeiro na RAM e depois (quando estiver ficando cheio) na partição swap no disco. por exemplo,

# enable zswap
echo 1 > /sys/module/zswap/parameters/enabled

# set it to use lz4 (or use gzip for better compression but more CPU usage)
echo lz4 > /sys/module/zswap/parameters/compressor

# set maximum allowed percentage of RAM to use for swap
echo 50 > /sys/module/zswap/parameters/max_pool_percent

BTW, para ver quanto espaço de troca está sendo usado no momento, execute swapon sem argumentos. ou execute top ou htop .

    
por 05.08.2016 / 16:03

Tags