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
Indichiamo la dimensione di cui abbiamo bisogno e creiamo un volume EBS
Stiamo aspettando che lo stato del volume EBS diventi disponibile
Quindi seleziona il nostro volume EBS e azioni -> Allega volume
E scegliendo il server su cui monteremo il disco, completiamo la preparazione del Volume EBS
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