Troca de servidor Linux antes que a memória esteja completamente cheia

0

Eu esperava que toda a RAM fosse usada antes da troca de experiência, mas tenho esse resultado estranho em htop :

Isso significa que no meu servidor com 24 GB de RAM, meu software trocou 1 GB de memória para o disco, quando eles usam apenas 23 GB de memória.

Eu não esperava trocar ao usar menos memória do que a disponível no hardware ... Por que o servidor está fazendo isso?

    
por Romain Jouin 26.12.2016 / 00:50

2 respostas

0

Esse comportamento é controlado por meio de uma configuração do kernel chamada vm.swappiness , que pode ser definido em um intervalo de 0 a 100. O valor padrão de 60 fará com que o sistema troque um pouco antes que a memória física esteja completamente cheia, o que ajuda a manter o desempenho sob pressão de memória, sem trocar o desempenho devido a se debatendo .

Isso pode ser desabilitado configurando-se o swap para 0, caso em que o sistema não irá trocar a menos que seja absolutamente necessário. Isso pode fazer sentido se você costuma ter muita RAM livre. No entanto, o desempenho cairá de um penhasco no momento em que a memória física do seu sistema for completamente preenchida quando o sistema for subitamente forçado a trocar em um momento inoportuno quando um aplicativo precisar de memória, e não no seu caso como seu servidor. está correndo perto de cheio.

Provavelmente é melhor você configurar o swappiness para um valor baixo (mas diferente de zero) como 10, o que reduzirá a troca desnecessária enquanto não estiver esperando até o último momento para liberar RAM quando um programa precisar dele. A melhor configuração depende do seu ambiente, então experimente diferentes configurações até obter os melhores resultados.

Para alterar a configuração do swappiness, escreva o valor desejado em /proc/sys/vm/swappiness usando echo como root. Para fazer alterações permanentes, adicione uma linha vm.swappiness a /etc/sysctl.conf (substitua 10 pelo valor desejado, conforme necessário):

vm.swappiness = 10
    
por 26.12.2016 / 01:36
1

Os sistemas operacionais não esperarão pelo último segundo para trocar memória por motivos de desempenho. A implementação dependerá dos sistemas operacionais que você está usando, mas a maioria dos sistemas operacionais modernos irá trocar bem antes que a memória física esteja cheia. As trocas geralmente ocorrem quando o sistema não está em carga total, então quando há mais trabalho, ele tem RAM suficiente e está pronto para lidar com o trabalho.

Para sistemas desktop, alguns sistemas operacionais (ex .: Windows) podem pré-carregar softwares que você costuma usar na memória e colocar dados que não são usados atualmente no disco rígido. Isso não funciona bem quando o sistema é instalado recentemente, mas se tornará melhor e melhor à medida que você o utiliza.

    
por 26.12.2016 / 01:14