Adicionar espaço de swap ao seu servidor é uma excelente opção para compensar erros de falta de memória. Linux permite aos usuários adicionar espaço de swap em seu sistema quando a quantidade de RAM no sistema estiver cheia. Ao criar uma partição de espaço dedicada, você permitirá que sua memória física funcione sem problemas, sem se preocupar muito com a falta de espaço em disco.
Visão geral do Swap
O espaço de swap no Linux é uma parte da memória virtual de uma máquina usada quando a memória física fica sem espaço. Especialmente ao trabalhar com um programa ou aplicativo grande onde surge a necessidade de memória extra, o espaço de swap é uma escolha ideal para reter páginas de memória temporariamente inativas. A criação de um espaço de swap permite que os usuários armazenem dados quando programas grandes estão em execução e, assim, reduz as falhas de aplicativos. Isso significa que se o sistema precisar de mais recursos de memória e a RAM estiver cheia, todas as páginas inativas na memória são transferidas para o espaço de swap e os programas podem ser executados sem interrupção.
De quanto espaço de swap eu preciso?
A quantidade de espaço de swap depende de vários fatores. Estes incluem a RAM disponível, a carga imposta e se o sistema precisa suportar o recurso de hibernação (suspender para o disco). Consulte a tabela abaixo para verificar o espaço de swap recomendado com base no espaço disponível na RAM:
|
Nº |
Espaço de RAM disponível |
Espaço de swap recomendado |
|
1. |
1GB |
1GB |
|
2. |
2GB |
1GB |
|
3. |
3GB |
2GB |
|
4. |
4GB |
2GB |
|
5. |
5GB |
2GB |
|
6. |
6GB |
2GB |
|
7. |
8GB |
3GB |
Neste tutorial, vamos guiá-lo pelos passos para adicionar espaço de swap no Ubuntu 20.04. Vamos começar!
Pré-requisitos
Para acompanhar este tutorial, você precisará de:
- Ubuntu instalado em seu sistema.
- Uma conta de usuário não-root configurada com privilégios sudo em sua máquina.
Passo 1: Verificação das informações de swap
O tamanho do espaço de swap depende da RAM do sistema. Portanto, é essencial verificar a disponibilidade de espaço de swap em seu sistema antes de criar um. Digite o comando abaixo para verificar se o sistema possui algum swap configurado:
|
1 |
$ sudo swapon --show |
Se uma saída for exibida, significa que há espaço disponível em seu sistema para criar espaço de swap. No entanto, a ausência de saída é um sinal que indica que não há espaço disponível suficiente para adicionar espaço de swap.
Use o utilitário free para verificar se não há swap ativo:
|
1 |
$ free -h |
Você verá a saída como uma linha de swap nula:
Passo 2: Verificação de disponibilidade de partição do disco rígido
Semelhante à verificação de disponibilidade do sistema, agora vamos verificar o uso atual do nosso disco para garantir que temos espaço suficiente. Use o comando df para verificar a disponibilidade da partição do disco rígido:
|
1 |
df -h |
O dispositivo com / na coluna Mounted on é o nosso disco que está 11% livre. Você verá a saída:
Depois de verificar os requisitos do sistema, vamos prosseguir e criar um arquivo de swap em nosso sistema de arquivos.
Step 3: Create a Swap File
Para criar um arquivo de swap em nosso sistema de arquivos, aloque um nome de arquivo como swapfile no diretório raiz (/) usando o programa fallocate. A alocação do tamanho do arquivo depende das suas necessidades. Para manter o tutorial simples e fácil de entender, estamos criando um arquivo de 1G e dedicando 1G de RAM. Use o comando sudo para criar um arquivo de swap:
|
1 |
sudo fallocate -l 1G /swapfile |
Em seguida, digite este comando para verificar o espaço reservado:
|
1 |
$ ls -lh /swapfile |
Agora que criamos um espaço de swap em nosso sistema, vamos ativá-lo no próximo passo.
Passo 4: Ativar o arquivo de swap
Assim que tivermos o tamanho correto disponível, vamos convertê-lo em espaço de swap. Por razões de segurança, é crucial tornar nosso arquivo acessível apenas para usuários root e impedir o acesso de usuários normais. Adicionaremos restrições para que os usuários com privilégios root possam visualizar o arquivo e ler seu conteúdo. Use o seguinte comando root para tornar o arquivo acessível apenas a usuários root :
|
1 |
sudo chmod 600 /swapfile |
Em seguida, use o comando ls para verificar as alterações:
|
1 |
$ ls -lh /swapfile |
Como você pode ver, apenas o usuário root tem as permissões de leitura e escrita ativadas:
Depois disso, marque o arquivo como espaço de swap:
|
1 |
sudo mkswap /swapfile |
Você verá a saída:
Depois disso, ative o arquivo swap e permita que o nosso sistema comece a usá-lo:
|
1 |
sudo swapon /swapfile |
Em seguida, verifique a disponibilidade do swap:
|
1 |
$ sudo swapon --show |
Você verá a saída:
Como fizemos na Etapa 1, verificaremos o espaço do utilitário free mais uma vez:
|
1 |
free -h |
Você verá a saída:
Nosso swap foi configurado com sucesso e o nosso sistema operacional começará a usá-lo conforme necessário. Na próxima etapa, tornaremos o arquivo swap permanente.
Etapa 5: Tornar o Arquivo Swap Permanente
Por padrão, o servidor não reterá as configurações de swap automaticamente sempre que reiniciarmos. Para alterar as configurações padrão e garantir a segurança, adicionaremos o arquivo swap ao nosso /etc/fstab arquivo. Use o comando sudo para fazer backup do arquivo /etc/fstab:
|
1 |
sudo cp /etc/fstab /etc/fstab.bak |
Em seguida, adicione as informações do arquivo swap ao final do seu arquivo /etc/fstab digitando:
|
1 |
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab |
Depois disso, vamos revisar algumas configurações e fazer modificações para que possamos ajustar nosso espaço de swap.
Etapa 6: Modificação das Configurações de Swap
Nesta etapa, configuraremos as definições e faremos algumas modificações. Vamos’ ajustar a propriedade swappiness e alterar a pressão do cache.
-
Ajustar a Propriedade Swappiness
O parâmetro swappiness é um parâmetro ajustável do kernel. Ele altera o equilíbrio entre a troca de memória de tempo de execução (swapping) e contabiliza a troca de dados entre a RAM e o espaço de swap. Este valor paramétrico é expresso em porcentagem, variando de 0 a 100.
O valor vm.swappiness tem influência direta no comportamento do swappiness do sistema. Quanto maior for o vm.swappiness, mais o sistema fará swap e vice-versa. Se o valor estiver próximo de zero, o kernel não fará a troca de dados, o que pode levar a uma redução no desempenho. Permitir que seu sistema não dependa muito do swap é uma excelente maneira de melhorar seu desempenho e obter uma capacidade de resposta robusta.
Alternativamente, um vm.swappiness mais próximo de 100 tenta colocar mais dados no swap e menos na memória física. Ao contrário do valor de vm.swappiness baixo a medíocre, o alto swapping do sistema tem efeitos muito indesejáveis quando há grandes volumes de dados sendo trocados ativamente para dentro e para fora da RAM.
Verifique o valor atual de swappiness digitando:
|
1 |
cat /proc/sys/vm/swappiness |
Você’ verá a saída:
Você também pode definir o swappiness de sua escolha usando o comando sysctl. Vamos definir o valor de swappiness para 15 digitando:
|
1 |
sudo sysctl vm.swappiness = 15 |
Você verá a saída:
Até que o sistema seja reiniciado, as configurações permanecerão como estão. Adicione a linha ao nosso arquivo /etc/sysctl.conf para definir o valor automaticamente na reinicialização:
|
1 |
sudo nano /etc/sysctl.conf |
Você pode adicionar o seguinte código na parte inferior:
|
1 |
Vm.swappiness = 15 |
Em seguida, salve e feche o arquivo.
-
Ajustar a Pressão do Cache
Em seguida, vamos modificar vfs_cache_pressure que cuidará das informações de inode e dentry em detrimento de outros dados. Essas configurações de vfs_cache_pressure settings também controlam a tendência do kernel de recuperar a memória usada para cache do diretório. Navegue pelo sistema de arquivos proc novamente para verificar o valor atual:
|
1 |
cat /proc/sys/vm/vfs_cache_pressure |
Você verá a saída:
Como a configuração já está feita, nosso sistema eliminará as informações de inode do cache. Vamos’ definir o sysctl vm.vfs_cache_pressure para uma configuração mais estável como esta:
|
1 |
sudo sysctl vm.vfs_cache_pressure = 60 |
Você verá a saída:
Semelhante ao que fizemos na nossa configuração de swappiness, podemos alterar a configuração aqui também:
|
1 |
sudo nano /etc/sysctl.conf |
Na parte inferior, insira uma linha indicando o novo valor que você criou:
|
1 |
Vm.vfs_cache_pressure = 60 |
Por fim, salve e feche o arquivo.
Conclusão
Você pode adicionar espaço swap como uma partição swap dedicada, um arquivo swap ou uma combinação de ambos. Você pode criar espaço swap e aproveitar seus benefícios para executar aplicativos de forma contínua, sem se preocupar muito com avisos de falta de memória. Embora a criação de espaço swap seja uma vantagem adicional em sistemas com espaço de memória limitado, ela não deve ser tratada como uma alternativa para mais espaço de RAM. Lembre-se de que o espaço swap está localizado em um disco rígido, portanto, você pode experimentar um tempo de acesso ligeiramente mais lento em comparação com a memória física.
Aqui estão mais tutoriais no nosso blog que ajudarão você a começar com seus servidores Ubuntu:
- Configurando uma montagem NFS no Ubuntu 20.04
- Instalando o Nginx no Ubuntu 18.04
- Configurando um firewall com UFW no Ubuntu 18.04
Boa computação!










Comentários
Nenhum comentário ainda. Seja o primeiro.