Wie fügen Sie Swap zu einer EC2-Instanz hinzu?

Ich führe gerade eine ec2 Mikroinstanz und ich habe festgestellt, dass die Instanz manchmal nicht genügend Speicher hat.

Abgesehen davon, dass Sie eine größere Instanzgröße verwenden, was kann sonst noch getan werden?

Eine Lösung für dieses Problem besteht darin, der Instanz swap (dh paging ) Speicherbereich hinzuzufügen.

Paging funktioniert, indem ein Bereich auf Ihrer Festplatte erstellt und für zusätzlichen Speicher verwendet wird. Dieser Speicher ist viel langsamer als normaler Speicher, jedoch ist viel mehr verfügbar.

Um dieser Instanz zusätzlichen Speicherplatz hinzuzufügen, geben Sie Folgendes ein:

 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 

Wenn Sie mehr als 1024 benötigen, ändern Sie das auf etwas höher.

Um es nach dem Neustart standardmäßig zu aktivieren, füge diese Zeile zu / etc / fstab hinzu:

 /var/swap.1 swap swap defaults 0 0 

Der Austausch sollte auf der Instance Storage (ephemeren) Festplatte und nicht auf einem EBS-Gerät stattfinden. Swapping wird eine Menge IO verursachen und die Kosten für EBS erhöhen. EBS ist auch langsamer als der Instance Store und der Instance Store kommt mit bestimmten Arten von EC2 Instanzen kostenlos.

Normalerweise wird es auf / mnt gemountet, aber nicht ausgeführt

 sudo mount /dev/xvda2 /mnt 

Um dann eine Auslagerungsdatei auf diesem Gerät zu erstellen, machen Sie folgendes für eine 4GB-Auslagerungsdatei

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

Stellen Sie sicher, dass kein anderer Benutzer die Auslagerungsdatei anzeigen kann

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

Als Swap machen und kennzeichnen

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

Fügen Sie hinzu / Stellen Sie sicher, dass die folgenden in Ihrer / etc / fstab sind

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

Aktivieren Sie schließlich Swap

 sudo swapon -a 

Nach dem Anwenden der von ajtrichards genannten Schritte können Sie überprüfen, ob Ihre amazon-freie Tier-Instanz mit diesem Befehl swap verwendet

 cat /proc/meminfo 

Ergebnis:

 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 coreelStack: 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 

Mit diesen Befehlen können Sie Ihrer Instanz einen 1-GB-Swap hinzufügen:

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

Um es nach dem Neustart standardmäßig zu aktivieren, füge diese Zeile zu /etc/fstab :

 /swapfile swap swap defaults 0 0 

Wenn Sie sich auf t2 Instanzen befinden ( t2.micro , t2.medium , t2.small ), steht Ihnen kein ephemerer oder Instanzenspeicher zur Verfügung. Sie müssen also nur Ihren Swap in EBS erstellen, was je nach Anwendungsfall keine gute Idee ist. Andernfalls folgen Sie der Antwort von @David und erstellen Sie Ihren Swap auf dem ephemeren Speicher, um EBS-Kosten zu vermeiden.

Weitere Informationen: http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html Es gibt eine Tabelle, die zeigt, wie viel ephemeren Speicher Sie für jeden Instanztyp erhalten.

Sie können Swap Space mit den folgenden Schritten erstellen Hier erstellen wir Swap at /home/

  1. dd if=/dev/zero of=/home/swapfile1 bs=1024 count=8388608
    Hier ist die Anzahl der Kilobyte des Swap-Speicherplatzes

  2. mkswap /home/swapfile1

  3. vi /etc/fstab
    Eintrag machen:
    /home/swapfile1 swap swap defaults 0 0

  4. Lauf:
    swapon -a

Wir können Swap Space auf jedem Server hinzufügen

Erstellen Sie eine Datei mit dem Befehl dd

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

bs ist blocksize und count bezieht sich auf die Größe in MB oder GB

wir können umgekehrt verwenden

Nach der Erstellung ändern Sie die Berechtigung der Datei:

  #chmod 600 /swapfile 

Dann makewap die Datei:

  #mkswap /swapfile 

Aktivieren Sie dann die Auslagerungsdatei mit dem Befehl swapon:

  #swapon /swapfile 

Überprüfen Sie mit dem Befehl free, ob Swap aktiviert ist oder nicht:

  #free -h #swapon -s 

Versuchen Sie Swapspace http://pqxx.org/development/swapspace/

Die meisten Distributionen haben es verpackt.

Auf EC2 möchten Sie möglicherweise “swappath” zu / mnt oder High-Iops-Festplatte ändern.

Sie können das folgende Skript verwenden, um Swap auf Amazon Linux hinzuzufügen.

https://github.com/chetankapoor/swap

Laden Sie das Skript mit wget herunter:

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

Führen Sie dann das Skript mit dem folgenden Format aus:

 sh swap.sh 2G 

Für ein komplettes Tutorial können Sie besuchen:

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