Troca de memória, e quando o sistema operacional começar a usá-lo

2

Estamos executando o Red Hat Enterprise Linux versão 7, e todas as nossas máquinas são máquinas virtuais.

Nossos recursos de memória são limitados e a RAM física custa dinheiro, então estamos pensando em aumentar o swap em vez de adicionar memória.

Esta é uma boa ideia?

Em segundo lugar, quando / a partir de que ponto o sistema operacional começa a usar o swap?

    
por yael 05.06.2018 / 08:13

3 respostas

10

Não, é uma má ideia.

Você não deve pensar em swap como um mecanismo pelo qual você pode expandir a memória; é uma área de armazenamento para partes da memória que não têm para permanecer na memória física e cujos conteúdos não existem em nenhum outro lugar. Consulte Por que o Linux precisa de espaço de troca em uma VM? para obter detalhes.

Se os processos em execução dentro de suas VMs estiverem ficando sem memória, você precisará determinar qual é o conjunto de trabalho real, tanto na operação nominal quanto no pior dos casos. Então, supondo que você não possa reduzir o uso de memória, é necessário configurar as configurações de memória de acordo com: alocação de RAM, troca e configuração do kernel (swappiness etc.). A alocação de RAM terá um impacto direto no número de VMs que você pode executar por host, e essa deve ser sua principal variável de ajuste se você não puder adicionar mais memória aos seus hosts. (Isso não ajuda com o aspecto do custo, é claro ...) Dependendo do que você precisa das VMs, outra estratégia poderia ser usar contêineres, pois isso permitirá reduzir a sobrecarga.

Os sistemas operacionais geralmente começam a usar swap quando precisam alocar memória e a memória física disponível está acabada, e as páginas de memória menos usadas atualmente na memória física não têm o que é chamado de armazenamento de backup (ou melhor, loja de apoio é swap). Quando um programa precisa de mais memória, o kernel procurará primeiro alguma memória livre; então, ele irá olhar através de uma lista hierárquica de coisas das quais pode se livrar - cache, buffers, executáveis mapeados, etc. Note que swap pode ser usado mesmo na ausência de pressão de memória “visível”: sempre há pedaços de dados armazenados em memória que não são realmente usados, e são melhor armazenados em swap.

    
por 05.06.2018 / 08:24
1

Se você tiver falta de memória e não puder atualizar a RAM melhor, você encontrará maneiras de liberar alguma memória em seu servidor. Geralmente, existem muitos processos / serviços que você pode não precisar. Por exemplo, em um sistema de servidor "copos" serviço de impressão não é necessário. Portanto, identifique todos esses serviços e desative-os.

Não há mal nenhum em adicionar "swap" adicional, mas tenha em mente que não é um substituto para a RAM. Seus aplicativos experimentam um desempenho sério se degradarem se começarem a usar o swap.

    
por 05.06.2018 / 09:59
0

Para adicionar a excelente resposta de Stephen Kitt: o uso de swap planejado em máquinas físicas pode ser uma má ideia, em um ambiente virtual é uma idéia muito ruim devido a toda a I / O somando alguns (poucos) dispositivos comuns de armazenamento central.

Basicamente, para ampliar o desempenho de sua infra-estrutura, você deseja criar estratégias para minimizar sua E / S e não para piorá-la.

    
por 24.06.2018 / 23:30