Jak dodać swap do instancji EC2?

Obecnie uruchamiam instancję ec2 micro i od czasu do czasu stwierdzam, że instancja kończy się pamięcią.

Inne niż użycie większego rozmiaru instancji, co jeszcze można zrobić?

Author: gvasquez, 2013-06-18

9 answers

Poprawką tego problemu jest dodanie swap (tj. paging) spacji do instancji.

Stronicowanie działa poprzez tworzenie obszaru na dysku twardym i używanie go jako dodatkowej pamięci, Pamięć ta jest znacznie wolniejsza niż zwykła pamięć, jednak znacznie więcej z niej jest dostępnych.

Aby dodać tę dodatkową spację do instancji wpisz:

sudo /bin/dd if=/dev/zero of=/var/swap.1 bs=1M count=1024
sudo /sbin/mkswap /var/swap.1
sudo chmod 600 /var/swap.1
sudo /sbin/swapon /var/swap.1

Jeśli potrzebujesz więcej niż 1024, zmień to na coś wyższego.

Aby włączyć ją domyślnie po ponownym uruchomieniu, dodaj tę linię do /etc/fstab:

/var/swap.1   swap    swap    defaults        0   0
 497
Author: ajtrichards,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-05-02 16:57:57

Wymiana powinna odbywać się na dysku przechowywania instancji (efemerycznym), a nie na urządzeniu EBS. Wymiana spowoduje dużo IO i zwiększy koszt EBS. EBS jest również wolniejszy niż instancja Store, a instancja Store jest darmowy z pewnymi typami instancji EC2 .

Zazwyczaj będzie montowany do / mnt, ale jeśli nie zostanie uruchomiony

sudo mount /dev/xvda2 /mnt

Aby utworzyć plik wymiany na tym urządzeniu, wykonaj następujące czynności dla pliku wymiany 4GB

sudo dd if=/dev/zero of=/mnt/swapfile bs=1M count=4096

Upewnij się, że żaden inny użytkownik nie może wyświetlić swapu plik

sudo chown root:root /mnt/swapfile
sudo chmod 600 /mnt/swapfile

Marka i znacznik jako swap

sudo mkswap /mnt/swapfile
sudo swapon /mnt/swapfile

Dodaj / upewnij się, że w twoim /etc / fstab

/dev/xvda2      /mnt    auto    defaults,nobootwait,comment=cloudconfig 0   2
/mnt/swapfile swap swap defaults 0 0

Wreszcie włącz swap

sudo swapon -a
 203
Author: David,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-05-05 12:13:01

Po wykonaniu kroków opisanych przez ajtrichards możesz sprawdzić, czy Twoja wolna instancja warstwy amazon używa swap za pomocą tego polecenia

cat /proc/meminfo

Wynik:

ubuntu@ip-172-31-24-245:/$ cat /proc/meminfo
MemTotal:         604340 kB
MemFree:            8524 kB
Buffers:            3380 kB
Cached:           398316 kB
SwapCached:            0 kB
Active:           165476 kB
Inactive:         384556 kB
Active(anon):     141344 kB
Inactive(anon):     7248 kB
Active(file):      24132 kB
Inactive(file):   377308 kB
Unevictable:           0 kB
Mlocked:               0 kB

Swaptotal: 1048572 kB

SwapFree: 1048572 kB

Dirty:                 0 kB
Writeback:             0 kB
AnonPages:        148368 kB
Mapped:            14304 kB
Shmem:               256 kB
Slab:              26392 kB
SReclaimable:      18648 kB
SUnreclaim:         7744 kB
KernelStack:         736 kB
PageTables:         5060 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:     1350740 kB
Committed_AS:     623908 kB
VmallocTotal:   34359738367 kB
VmallocUsed:        7420 kB
VmallocChunk:   34359728748 kB
HardwareCorrupted:     0 kB
AnonHugePages:         0 kB
HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB
DirectMap4k:      637952 kB
DirectMap2M:           0 kB
 40
Author: HimalayanCoder,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-02-13 12:59:43

Możesz dodać 1 GB swap do swojej instancji za pomocą następujących poleceń:

sudo dd if=/dev/zero of=/swapfile bs=1M count=1024
sudo mkswap /swapfile
sudo swapon /swapfile

Aby włączyć go domyślnie po ponownym uruchomieniu, dodaj tę linię do /etc/fstab:

/swapfile swap swap defaults 0 0
 34
Author: David Levesque,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-06-18 16:56:52

Jeśli jesteś na t2 instancjach (t2.micro, t2.medium, t2.small), nie ma pamięci efemerycznej ani instancji dostępnej dla Ciebie. Więc musisz po prostu utworzyć swap w EBS, co w zależności od przypadku użycia może być lub nie może być dobrym pomysłem. W przeciwnym razie postępuj zgodnie z odpowiedzią @ David i utwórz swap na efemerycznej pamięci masowej, aby uniknąć płacenia kosztów EBS.

Więcej informacji: http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html jest tabela, która pokazuje, ile efemerycznego przechowywania dostajesz dla każdego typu wystąpienia.

 14
Author: Ali,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-02-21 11:58:48

Możesz utworzyć przestrzeń wymiany, wykonując następujące czynności Tutaj tworzymy swap w /home/

  1. dd if=/dev/zero of=/home/swapfile1 bs=1024 count=8388608
    Tutaj liczba jest liczbą kilobajtów przestrzeni wymiany

  2. mkswap /home/swapfile1

  3. vi /etc/fstab
    dokonaj wpisu :
    /home/swapfile1 swap swap defaults 0 0

  4. Bieg:
    swapon -a

 7
Author: minhas23,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-11-03 16:58:14

Możemy dodać przestrzeń swap na dowolnym serwerze

Utwórz plik za pomocą polecenia dd

 #dd if=/dev/zero of=/swapfile bs=1M count=2048
                    or
 #dd if=/dev/zero of=/swapfile bs=1024M count=2

Bs to rozmiar bloku i count odnosi się do rozmiaru W MB lub GB

Możemy użyć vice versa

Po utworzeniu zmień uprawnienia pliku:

 #chmod 600 /swapfile 

Następnie tworzy plik:

 #mkswap /swapfile 

Następnie włącz plik wymiany za pomocą polecenia swapon:

 #swapon  /swapfile 

Sprawdź za pomocą free command czy swap jest włączony czy nie :

 #free -h
 #swapon -s
 3
Author: Shakeel,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-01-16 14:35:25

Try swapspace http://pqxx.org/development/swapspace/

Większość dystrybucji ma to zapakowane.

Na EC2 możesz zmienić" swappath " na /mnt lub high-iops disk.

 1
Author: rdoroshenko,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-02-07 12:49:53

Możesz użyć następującego skryptu, aby dodać swap na Amazon Linux.

Https://github.com/chetankapoor/swap

Pobierz skrypt za pomocą wget:

wget https://raw.githubusercontent.com/chetankapoor/swap/master/swap.sh -O swap.sh

Następnie uruchom skrypt w następującym formacie:

sh swap.sh 2G

Kompletny samouczek znajdziesz na stronie:

Https://installvirtual.com/shell-script-to-create-swap/

 -1
Author: Chetan kapoor,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-08-01 08:51:26