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ć?
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
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
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
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
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.
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/
-
dd if=/dev/zero of=/home/swapfile1 bs=1024 count=8388608
Tutaj liczba jest liczbą kilobajtów przestrzeni wymiany mkswap /home/swapfile1
vi /etc/fstab
dokonaj wpisu :/home/swapfile1 swap swap defaults 0 0
Bieg:
swapon -a
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
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.
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:
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