Ich verwende derzeit eine ec2-Mikroinstanz und habe festgestellt, dass der Instanz gelegentlich der Speicherplatz ausgeht.
Was kann außer der Verwendung einer größeren Instanz noch getan werden?
Ich verwende derzeit eine ec2-Mikroinstanz und habe festgestellt, dass der Instanz gelegentlich der Speicherplatz ausgeht.
Was kann außer der Verwendung einer größeren Instanz noch getan werden?
Antworten:
Eine Lösung für dieses Problem besteht darin , der Instanz Speicherplatz hinzuzufügen swap
(dh paging
).
Beim Paging wird ein Bereich auf Ihrer Festplatte erstellt und für zusätzlichen Speicher verwendet. Dieser Speicher ist viel langsamer als der normale Speicher, es ist jedoch viel mehr verfügbar.
Um diesen zusätzlichen Speicherplatz zu Ihrer Instanz 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.
Fügen Sie diese Zeile zu / etc / fstab hinzu, um sie nach dem Neustart standardmäßig zu aktivieren:
/var/swap.1 swap swap defaults 0 0
if
bedeutet "Eingabedatei", of
bedeutet "Ausgabedatei", bs
bedeutet "Blockgröße" und count
ist die Anzahl der Blöcke, die Sie zuweisen möchten. man
Weitere Informationen finden Sie auf der Seite des Befehls: linux.die.net/man/1/ dd
$> free -m
Der Austausch sollte auf der Instance Storage-Festplatte (kurzlebig) und nicht auf einem EBS-Gerät erfolgen. Das Austauschen verursacht viel IO und erhöht die Kosten für EBS. EBS ist auch langsamer als der Instance Store und der Instance Store ist mit bestimmten Arten von EC2-Instanzen kostenlos .
Es wird normalerweise auf / mnt gemountet, aber wenn nicht ausgeführt
sudo mount /dev/xvda2 /mnt
Um dann eine Auslagerungsdatei auf diesem Gerät zu erstellen, gehen Sie für eine 4-GB-Auslagerungsdatei wie folgt vor
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 Tausch
sudo mkswap /mnt/swapfile
sudo swapon /mnt/swapfile
Hinzufügen / Stellen Sie sicher, 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 Swap aktivieren
sudo swapon -a
Nachdem Sie die von ajtrichards genannten Schritte ausgeführt haben, können Sie mit diesem Befehl überprüfen, ob Ihre Amazon Free Tier-Instanz 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
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
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
Fügen Sie diese Zeile hinzu, um sie nach dem Neustart standardmäßig zu aktivieren /etc/fstab
:
/swapfile swap swap defaults 0 0
/swapfile
. Sie können aber auch ein anderes Dateisystem mounten und dort die Auslagerungsdatei erstellen, z /mnt/blah/swapfile
.
Wenn Sie sind t2
Instanzen ( t2.micro
, t2.medium
, t2.small
), gibt es keinen kurzlebigen oder Instance - Speicher zur Verfügung. Sie müssen also nur Ihren Swap-In erstellenEBS
dem je nach Anwendungsfall eine gute Idee sein kann oder nicht. Folgen Sie andernfalls der Antwort von @David und erstellen Sie Ihren Swap im kurzlebigen Speicher, um die Zahlung von EBS-Kosten zu vermeiden.
Weitere Informationen: http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html In einer Tabelle wird angezeigt, wie viel kurzlebigen Speicher Sie für jeden Instanztyp erhalten.
For example, if you provision a volume with 1000 IOPS, and keep this volume for 15 days in a 30 day month, then in a Region that charges $0.10 per provisioned IOPS-month, you would be charged $50 for the IOPS that you provision ($0.10 per provisioned IOPS-month * 1000 IOPS provisioned * 15 days/30). You will be charged for the IOPS provisioned on a volume even when the volume is detached from an instance.
. AWS berechnet anscheinend Gebühren für Lese- und Schreibvorgänge.
Sie können Swap Space mit den folgenden Schritten erstellen. Hier erstellen wir Swap Space unter /home/
dd if=/dev/zero of=/home/swapfile1 bs=1024 count=8388608
Hier ist count die Kilobyte-Anzahl des Swap-Space
mkswap /home/swapfile1
vi /etc/fstab
Eintrag machen:
/home/swapfile1 swap swap defaults 0 0
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 die Blockgröße und count bezieht sich auf die Größe in MB oder GB
wir können umgekehrt verwenden
Ändern Sie nach der Erstellung die Berechtigung der Datei:
#chmod 600 /swapfile
Dann tauscht die Datei aus:
#mkswap /swapfile
Aktivieren Sie dann die Auslagerungsdatei mit dem Befehl swapon:
#swapon /swapfile
Überprüfen Sie mit dem Befehl free, ob der Swap aktiviert ist oder nicht:
#free -h
#swapon -s
Die Verwendung von Davids Instance Storage-Antwort funktionierte anfangs für mich (auf einem m5d.2xlarge). Nachdem ich die EC2-Instanz gestoppt und wieder eingeschaltet hatte, konnte ich mich nicht erneut in die Instanz einschalten.
In den Instanzprotokollen wurde Folgendes gemeldet: "Sie befinden sich im Notfallmodus. Geben Sie nach dem Anmelden" journalctl -xb "ein, um Systemprotokolle anzuzeigen," systemctl reboot "zum Neustart," systemctl default "oder" exit ", um in den Standardmodus zu starten. Drücken Sie die Eingabetaste für die Wartung"
Ich habe stattdessen die AWS-Anweisungen in diesem Link befolgt und alles hat perfekt funktioniert, auch nach dem Aus- und Wiedereinschalten der Instanz.
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
Versuchen Sie es mit swapspace http://pqxx.org/development/swapspace/
Die meisten Distributionen haben es verpackt.
Auf EC2 möchten Sie möglicherweise "swappath" in / mnt oder High-Iops-Festplatte ändern.
Mit dem folgenden Skript können Sie Swap unter Amazon Linux hinzufü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 im folgenden Format aus:
sh swap.sh 2G
Ein vollständiges Tutorial finden Sie unter: