it-swarm.com.de

Wie fügt man einer EC2-Instanz einen Swap hinzu?

Ich führe derzeit eine ec2-Mikroinstanz aus und habe festgestellt, dass der Instanz gelegentlich der Speicher ausgeht.

Was kann man anders als mit einer größeren Instanz tun?

278
ajtrichards

Eine Lösung für dieses Problem besteht darin, der Instanz swap (d. H. paging) Speicherplatz 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, es steht jedoch viel mehr Speicher zur Verfügung.

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 dies in etwas Höheres.

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

/var/swap.1   swap    swap    defaults        0   0
549
ajtrichards

Der Austausch sollte auf der (kurzlebigen) Instanzspeicherplatte und nicht auf einem EBS-Gerät erfolgen. Das Austauschen verursacht eine Menge von IO und erhöht die Kosten für EBS. EBS ist auch langsamer als der Instance Store und der Instance Store ist kostenlos mit bestimmten Arten von EC2-Instanzen .

Es wird normalerweise in/mnt gemountet, wenn es nicht ausgeführt wird

Sudo mount /dev/xvda2 /mnt

Führen Sie die folgenden Schritte aus, um eine Auslagerungsdatei auf diesem Gerät für eine 4-GB-Auslagerungsdatei zu erstellen

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

Make and Flag als Swap

Sudo mkswap /mnt/swapfile
Sudo swapon /mnt/swapfile

Hinzufügen/Vergewissern Sie sich, dass sich Folgendes in Ihrer/etc/fstab befindet

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

zuletzt aktivieren Sie Swap

Sudo swapon -a
211
David

Nachdem Sie die von ajtrichards beschriebenen Schritte ausgeführt haben, können Sie mit diesem Befehl überprüfen, ob Ihre Amazon Free Tier-Instanz Swap verwendet

cat /proc/meminfo

ergebnis:

[email protected]:/$ 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
42
HimalayanCoder

Mit den folgenden 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ügen Sie diese Zeile zu /etc/fstab Hinzu:

/swapfile swap swap defaults 0 0
38
David Levesque

Wenn Sie auf t2 Instanzen (t2.micro, t2.medium, t2.small) steht Ihnen kein flüchtiger oder instanzieller Speicher zur Verfügung. Sie müssen also nur Ihren Swap in EBS erstellen, was je nach Anwendungsfall eine gute oder keine gute Idee sein kann. Befolgen Sie andernfalls die Antwort von @David und erstellen Sie Ihren Swap für den kurzlebigen Speicher, um zu vermeiden, dass EBS-Kosten anfallen.

Weitere Informationen: http://docs.aws.Amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html In einer Tabelle wird angezeigt, wie viel temporären Speicher Sie für jeden Instanztyp erhalten.

15
Ali

Mit den folgenden Schritten können Sie einen Swap Space erstellen. Hier erstellen wir einen Swap bei /home/

  1. dd if=/dev/zero of=/home/swapfile1 bs=1024 count=8388608
    Hier ist count die Kilobytezahl des Swap Space

  2. mkswap /home/swapfile1

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

  4. lauf:
    swapon -a

8
minhas23

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 beziehen sich auf Größe in MB oder GB

wir können es auch umgekehrt machen

Nach der Erstellung ändern Sie die Erlaubnis der Datei:

 #chmod 600 /swapfile 

Dann macht WAP 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
4
Javeed Shakeel

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

Die meisten Distributionen haben es verpackt.

In EC2 möchten Sie möglicherweise "swappath" in "/ mnt" oder "high-iops disk" ändern.

1
rdoroshenko

Die Verwendung von David's Instance Storage-Antwort funktionierte anfangs für mich (auf einem m5d.2xlarge), aber nachdem ich die EC2-Instanz gestoppt und wieder eingeschaltet hatte, war es mir nicht möglich, mich erneut in die Instanz einzuschalten.

Die Instanzprotokolle meldeten: "Sie befinden sich im Notfallmodus. Geben Sie nach der Anmeldung" journalctl -xb "ein, um die Systemprotokolle anzuzeigen," systemctl reboot "," systemctl default "oder" exit ", um in den Standardmodus zu booten. Drücken Sie die Eingabetaste für die Wartung"

Ich habe stattdessen die AWS-Anweisungen in diesem Link befolgt und alles hat einwandfrei funktioniert, auch nachdem die Instanz aus- und wieder eingeschaltet wurde.

https://aws.Amazon.com/premiumsupport/knowledge-center/ec2-memory-swap-file/

Sudo dd if=/dev/zero of=/swapfile bs=1G count=4

Sudo chmod 600 /swapfile

Sudo mkswap /swapfile

Sudo swapon /swapfile

Sudo swapon -s

Sudo vi /etc/fstab
/swapfile swap swap defaults 0 0
0
DaveJay