Quero usar uma partição no meu disco rígido para alocar memória para funcionar como espaço de troca em uma instância do Amazon Elastic Compute Cloud (Amazon EC2).
Breve descrição
Para alocar memória como espaço de troca, realize as seguintes etapas:
- Calcule o tamanho do espaço de troca.
- Crie uma partição em seu disco rígido como espaço de troca.
- Configure a área de troca.
Você também pode criar um arquivo de troca para usar como espaço de troca. Para obter mais informações, consulte Como alocar memória para funcionar como um arquivo de troca em uma instância do Amazon EC2?
Observação: a instância usa espaço de troca quando a quantidade de RAM está cheia. É possível usar o espaço de troca para instâncias que têm uma pequena quantidade de RAM, mas isso não é substituto por mais RAM. Como o espaço de troca está localizado no disco rígido da instância, o desempenho é mais lento quando comparado à RAM real. Para obter mais memória ou uma memória mais rápida, aumente o tamanho da sua instância.
Para obter mais informações sobre espaço de troca, consulte Espaço de troca no site da Red Hat.
Resolução
Calcule o tamanho do espaço de troca
É uma prática recomendada fazer com que o espaço de troca seja igual a duas vezes a RAM física para até 2 GB de RAM física. Para qualquer quantidade maior que 2 GB, adicione mais 0,5x de RAM física. Também é uma prática recomendada que você não permita que seu espaço de troca fique abaixo de 32 MB. Consulte a tabela a seguir para calcular o tamanho do seu espaço de troca:
| |
---|
Quantidade de RAM do sistema | Espaço de troca recomendado |
2 GiB ou menos | Duas vezes a quantidade de RAM, mas nunca menos que 32 MB |
Mais de 2 GiB, mas menos de 64 GiB | 0,5 vez a quantidade de RAM |
Mais de 64 GiB | Depende da workload ou do caso de uso |
Criar uma partição em seu disco rígido como espaço de troca
Para criar uma partição em seu disco rígido como espaço de troca, realize as seguintes etapas:
-
Use o AWS Systems Manager ou o SSH para fazer login na instância.
-
Liste os volumes disponíveis:
sudo fdisk -l
-
Selecione um dispositivo para particionar da lista. Neste exemplo, use o dispositivo /dev/xvda.
sudo fdisk /dev/xvda
-
Crie uma nova partição:
\-> n
-
Selecione um tipo de partição. Neste exemplo, use o primário:
\-> p
-
Atribua o número da partição. Neste exemplo, use a partição 2:
\-> 2
-
Pressione Enter para aceitar o padrão de “Primeiro setor”.
-
Insira o tamanho do arquivo de troca. Neste exemplo, há 2 GB de RAM. A partição que você criou tem 4 GB (especificada como +4G).
\-> +4G
-
Salve e feche:
\-> w
Configure a área de troca
Para configurar a área de troca, realize as seguintes etapas:
-
Use o comando partprobe para informar o sistema operacional sobre a alteração da tabela de partição:
partprobe
-
Use a partição de troca que você criou nas etapas anteriores para configurar uma área de troca do Linux. No exemplo a seguir, a partição de troca é /dev/xvda2.
mkswap /dev/xvda2
-
Adicione a partição como espaço de troca:
sudo swapon /dev/xvda2
-
Mostre o espaço de troca atual:
sudo swapon -s
A saída é semelhante ao exemplo a seguir:
Filename Type Size Used Priority/dev/xvda2 partition 4194300 0 -1
-
Após a reinicialização, realize as etapas a seguir para tornar permanente a alocação da memória de troca:
Imprima o UUID com o comando blkid:
sudo blkid
Copie o UUID da partição de troca a partir da saída anterior. Use um editor de texto, como vi ou nano, para adicionar o seguinte ao arquivo /etc/fstab:
UUID=xxxxxxx none swap SW 0 0
-
Salve o arquivo e, em seguida, execute uma reinicialização.
Depois de reinicializar o sistema operacional, use o comando free -h para verificar se a alocação de memória de troca persiste.