IT knowledge base
CTRL+F per cercare la tua parola chiave

SWAP Linux caldo su istanza AWS EC2

Sappiamo tutti quanto sia importante lo SWAP. E quanto è brutto senza di lui. Soprattutto quando non c'è molta RAM e sul server è apparso un processo "ingordo". Sì, e spazio su disco end-to-end sul server. E la capacità lavorativa deve essere ripristinata in questo momento ...

In questo articolo, voglio considerare come aggiungere SWAP sui server AWS EC2 "a caldo" senza riavviare il server.

Un po' di teoria: cos'è SWAP?

SWAP è uno dei meccanismi della memoria virtuale, in cui singoli blocchi di memoria (solitamente inattivi) vengono spostati dalla RAM alla memoria secondaria (una partizione o file separato), liberando RAM per caricare altri blocchi di memoria attivi. SWAP viene utilizzato anche quando si organizza una modalità di sospensione. Ma nel contesto di questo articolo, non lo prenderemo in considerazione. Puoi leggere di più su SWAP su Wikipedia .

Diamo un'occhiata a due modi per aggiungere SWAP:

  • SWAP come volume
  • Scambia come file

Scambia volume

Per implementare questa soluzione avremo bisogno di:

  • creare volume EBS
  • montalo sul nostro server
  • preparare la partizione montata per l'uso con SWAP
  • update / etc / fstab

Per prima cosa devi creare un volume EBS della dimensione desiderata. Per farlo, vai su
Servizi -> EC2 -> Volumi nella console AWS

Immagine dello schermo

Immagine

Indichiamo la dimensione di cui abbiamo bisogno e creiamo un volume EBS

Immagine dello schermo

Immagine

Stiamo aspettando che lo stato del volume EBS diventi disponibile

Immagine dello schermo

Immagine

Quindi seleziona il nostro volume EBS e azioni -> Allega volume

Immagine dello schermo

Immagine

E scegliendo il server su cui monteremo il disco, completiamo la preparazione del Volume EBS

Immagine dello schermo

Immagine

Ora ci colleghiamo al nostro server ed eseguiamo il comando lsblk

ubuntu@testinstance:~$ lsblk
NAME    MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda    202:0    0  16G  0 disk
└─xvda1 202:1    0  16G  0 part /
xvdf    202:80   0   8G  0 disk

Possiamo vedere che il nostro volume EBS è connesso con successo come /dev/xvdf .
Ora dobbiamo formattare il volume EBS connesso tramite mkswap
NOTA : non dimenticare di sostituire /dev/xvdf con il tuo valore

ubuntu@testinstance:~$ sudo mkswap /dev/xvdf
Setting up swapspace version 1, size = 8 GiB (8589930496 bytes)
no label, UUID=f2fe6c31-e8c5-4c28-b00f-99205cf2b04b

E attivalo

ubuntu@testinstance:~$ sudo swapon /dev/xvdf

Apportare modifiche a / etc / fstab
NOTA: non dimenticare di sostituire /dev/xvdf con il tuo valore
NOTA 2: è necessario aggiungere una voce a / etc / fstab in modo che dopo aver riavviato il server non sia necessario riconfigurare SWAP


ubuntu@testinstance:~$ echo -ne "/dev/xvdf\tswap\tswap\tdefault\t0\t0\n" | sudo tee -a /etc/fstab

Verificare che SWAP sia attivato nel sistema

ubuntu@testinstance:~$ free
              total        used        free      shared  buff/cache   available
Mem:        1014648       45824      705668        3152      263156      809168
Swap:       8388604           0     8388604

File di scambio

Per implementare questa soluzione avremo bisogno di:

  • creare e preparare il file SWAP per l'uso
  • update / etc / fstab

Cosa succede se non possiamo connettere un altro volume EBS al server, ma c'è spazio libero sul volume EBS corrente? In questo caso, possiamo creare file SWAP

Innanzitutto, vediamo quanto spazio libero abbiamo sul disco tramite df

ubuntu@testinstance:~$ df --block-size=G
Filesystem     1G-blocks  Used Available Use% Mounted on
udev                  1G    0G        1G   0% /dev
tmpfs                 1G    1G        1G   4% /run
/dev/xvda1           16G    1G       15G   7% /
tmpfs                 1G    0G        1G   0% /dev/shm
tmpfs                 1G    0G        1G   0% /run/lock
tmpfs                 1G    0G        1G   0% /sys/fs/cgroup
tmpfs                 1G    0G        1G   0% /run/user/1000

Crea un file di scambio da 8 Gb


ubuntu@testinstance:~$ sudo dd if=/dev/zero of=/swapfile bs=1M count=8192
8192+0 records in
8192+0 records out
8589934592 bytes (8.6 GB, 8.0 GiB) copied, 130.955 s, 65.6 MB/s

Dopodiché convertiamo il file da utilizzare come SWAP tramite mkswap

ubuntu@testinstance:~$ sudo mkswap /swapfile
Setting up swapspace version 1, size = 8 GiB (8589930496 bytes)
no label, UUID=5f3d0d1c-1ece-4e0d-aa58-16b093891438

Modifica i diritti di accesso al file di scambio

ubuntu@testinstance:~$ sudo chmod 0400 /swapfile

E lo attiviamo


ubuntu@testinstance:~$ sudo swapon /swapfile

Apportare modifiche a / etc / fstab
NOTA: è necessario aggiungere una voce a / etc / fstab in modo che dopo aver riavviato il server non sia necessario riconfigurare SWAP

ubuntu@testinstance:~$ echo -ne "/swapfile\tswap\tswap\tdefault\t0\t0\n" | sudo tee -a /etc/fstab

Verificare che SWAP sia attivato nel sistema

ubuntu@testinstance:~$ free
              total        used        free      shared  buff/cache   available
Mem:        1014648       45824      705668        3152      263156      809168
Swap:       8388604           0     8388604