Existem vários tmpfs com espaço total combinado maior que a memória total

1

Eu tenho um VPS com 7,5G de RAM rodando o CentOS 7, e tbh não tenho feito muitas otimizações, já que ele serve muito bem o site. Hoje eu ia criar um ramdisk para as tabelas temporárias do mysql, então eu pensei que deveria primeiro checar se algum ramdisk ou tmpfs já existe, e eu achei isso.

Filesystem      Size  Used Avail Use% Mounted on
/dev/vda1       XXXG  XXXG  XXXG   XX% /
devtmpfs        3.9G     0  3.9G   0% /dev
tmpfs           3.9G     0  3.9G   0% /dev/shm
tmpfs           3.9G  324K  3.9G   1% /run
tmpfs           3.9G     0  3.9G   0% /sys/fs/cgroup
tmpfs           783M     0  783M   0% /run/user/0

Eu sou um usuário médio * nix, então parece-me que já existem vários tmpfs e seus limites máximos combinados são realmente mais do que a memória total que eu tenho. Então, eu deveria estar preocupado que existem vários tmpfs que podem levar toda a memória disponível e colocar a máquina de joelhos? Ou esses tmpfs são criados pelo próprio SO e não criarão nenhum problema.

Atualização 1
@ Michael. Parece que estou indo em direção a problemas. Adicionando o arquivo 1G em /run , a memória livre disponível no topo é reduzida em 1G e o bônus / cache aumenta em 1G. Então isso significa que se qualquer usuário / pacote / script etc conseguir escrever alguma coisa nesses tmpfs, o sistema pode ficar inativo. Alguma idéia de como posso rastrear esses tmpfs e descobrir por que / como eles são criados.

Atualização 2
executando swapon -e retornos

NAME      TYPE      SIZE USED PRIO
/dev/vda2 partition   8G   0B   -1  

significa que meu cisne está realmente vivendo na própria memória, o que significa que, se o sistema tentar usar o SWAP para mover as coisas para longe da memória, as coisas terminarão novamente na memória, apenas em outro lugar. Então, qualquer sugestão para curar esta situação.

    
por firex 02.02.2016 / 00:30

1 resposta

1

Em relação a onde essas tmpfs dobras vêm:

  • /dev/shm é um recurso padrão de algumas distribuições do Linux. Aqui shm significa "Memória Compartilhada". É um ramdisk criado por padrão. Tem 0 GB usado, indicando que você não está usando.
  • /run/user/0 corresponde a um padrão usado por sistemas systemd , que você parece ter. systemd permite que você especifique limites de memória para "unidades de serviço" que são executadas. Tente sudo grep -R MemoryLimit /etc/systemd para ver se você encontra algum arquivo de unidade que especifique um limite de memória.
  • Acredito que /sys/fs/cgroup também é criado por systemd

Em outras palavras, parece que você tem vários discos RAM padrão criados, o que acontece com a reserva em excesso da sua memória, se você tentar preenchê-los todos de uma só vez. Eu não me preocuparia com a mera existência desses arquivos, já que eles são dificilmente usados em sua "captura de tela".

Se você quiser limitar o uso de memória de aplicativos específicos, systemd torna mais fácil limitar isso por "serviço". Leia sobre como usar MemoryLimit nos arquivos de configuração da "unidade de serviço" em /etc/systemd .

    
por 02.02.2016 / 01:25